Pyspark ML错误:对象没有属性map

以下是我的数据框和代码

df=    a b  c d    1 3  10 110    2 5  12 112    3 6  17 112    4  8  110 442

以下是我的代码

spark =SparkSession.builder.appName('dev_member_validate_spark').config('spark.sql.crossJoin.enabled','true').getOrCreate()sqlCtx=SQLContext(spark)from pyspark.ml.linalg import DenseVectorfrom pyspark.mllib.regression import LabeledPointtemp = df.select("a","b").map(lambda line:LabeledPoint(line[0],[line[1:]]))

当我执行temp=这一行时,得到以下错误

错误:Traceback (most recent call last):  File "<stdin>", line 1, in <module>  File "/opt/cloudera/parcels/SPARK2-2.1.0.cloudera1-  1.cdh5.7.0.p0.120904/lib/spark2/python/pyspark/sql/dataframe.py", line 964, in __getattr__  "'%s' object has no attribute '%s'" % (self.__class__.__name__, name))AttributeError: 'DataFrame' object has no attribute 'map'

我使用的是Pyspark 2.1和Cloudera 5.10

我参考以下链接进行上述脚本编写:

https://databricks.com/product/getting-started-guide/machine-learning

请帮助我解决这个问题。


回答:

首先请注意:有两个独立的ML库:第一个是你导入的线性代数库,即pyspark.ml。第二个是从pyspark.mllib导入的LabelPoint

尝试混用这两个包会遇到很多问题。尽量坚持使用一个,不要混用。

其次,关于你遇到的异常:temp = df.select("a","b").map(...)df是一个DataFrame,它没有map方法。

但请接受我的第一个建议 – 不要混用mllibml模块。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注