2017-11-15 13 views
-1

PythonスクリプトでPySpark APIを使用してsparkアプリケーションからpcaを実行しようとしています。私はそれが良い結果を仕事と戻りpysparkシェルで、これら2つのコード行を実行したときに予期しないキーワード引数 'k'がPCA()にあります

pca = PCA(k=3, inputCol="features", outputCol="pcaFeatures") 
PCAmodel = pca.fit(data) 

が、アプリケーションのスクリプトの中で、私は、エラーの種類取得しています:私はこの道をやって

PCA() got an unexpected keyword argument 'k'

PS:両方のケースで、私はスパーク2.2.0

を使用していますどこに問題がありますか?なぜPySparkシェルで動作し、アプリケーションでは動作しないのですか?

+0

私はspark 2.2.0を使用しています –

答えて

2
おそらく、1ケースに mlから輸入

:他で

from pyspark.ml.feature import PCA 

mllib:あなたはまた、あなたが輸入後、scikit-learnからPCAをインポートしていないことを確認

from pyspark.mllib.feature import PCA 
+0

いいえ、これは私の場合ではありません。どちらの場合も 'from pyspark.ml.feature import PCA'を使用しています –

1

ですそれはあなたのアプリケーションスクリプトでPySparkからですか?

spark.version 
# u'2.2.0' 

from pyspark.ml.feature import PCA 
from sklearn.decomposition import PCA 

# PySpark syntax with scikit-learn PCA function 
pca = PCA(k=3, inputCol="features", outputCol="pcaFeatures") 
# Error: 
TypeError: __init__() got an unexpected keyword argument 'k' 

(図示せず)がエラーを生成しない輸入の順序を逆にします。

1

は、あなたのクラスの名前を変更してみてください。

from pyspark.ml.feature import PCA as PCAML 
from sklearn.decomposition import PCA as PCASK 

pca_ml = PCAML(k=3, inputCol="features", outputCol="pcaFeatures") 

あなたが呼んで1、そして、何の混乱があってはなりません。

関連する問題