Pyspark PCA()得到了一个意外的关键字参数';k';
我正在尝试在python脚本上使用pysparkapi从spark应用程序执行pca。我这样做:Pyspark PCA()得到了一个意外的关键字参数';k';,pyspark,pca,apache-spark-ml,Pyspark,Pca,Apache Spark Ml,我正在尝试在python脚本上使用pysparkapi从spark应用程序执行pca。我这样做: pca=pca(k=3,inputCol=“features”,outputCol=“pcaFeatures”) PCAmodel=pca.fit(数据) 当我在pyspark shell中运行这两个代码行时,它工作正常并返回良好的结果,但在应用程序脚本中,我得到了错误类型: PCA()获得意外的关键字参数“k” PS:在这两种情况下,我都使用Spark 2.2.0 问题在哪里?为什么它在PySp
pca=pca(k=3,inputCol=“features”,outputCol=“pcaFeatures”)
PCAmodel=pca.fit(数据)
当我在pyspark shell中运行这两个代码行时,它工作正常并返回良好的结果,但在应用程序脚本中,我得到了错误类型:
PCA()获得意外的关键字参数“k”
PS:在这两种情况下,我都使用Spark 2.2.0
问题在哪里?为什么它在PySpark shell中工作而不适用于应用程序?在一种情况下,您可能是从
ml
导入的:
from pyspark.ml.feature import PCA
另一个中的mllib
:
from pyspark.mllib.feature import PCA
在应用程序脚本中从PySpark导入PCA后,您确定还没有从scikit学习导入PCA吗
spark.version
#u'2.2.0'
从pyspark.ml.feature导入PCA
从sklearn.decomposition导入PCA
#PySpark语法与scikit学习PCA函数
pca=pca(k=3,inputCol=“features”,outputCol=“pcaFeatures”)
#错误:
TypeError:\uuuu init\uuuuuuuuuu()获得意外的关键字参数“k”
颠倒导入顺序不会产生错误(未显示)。尝试重命名您的类:
from pyspark.ml.feature import PCA as PCAML
from sklearn.decomposition import PCA as PCASK
pca_ml = PCAML(k=3, inputCol="features", outputCol="pcaFeatures")
那么,你叫哪一个应该不会有任何混淆 不,这不是我的情况,对于这两种情况,我都使用pyspark.ml.feature import PCA中的
,我使用的是spark 2.2.0