繁体   English   中英

Pyspark ML错误对象没有属性映射

[英]Pyspark ML error object has no attribute 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 DenseVector
from pyspark.mllib.regression import LabeledPoint
temp = df.select("a","b").map(lambda line:LabeledPoint(line[0],[line[1:]]))

当我执行temp =行时,出现以下错误

Error: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

请帮助我解决此问题。

那是因为Dataframe根本没有'map'属性。 在Spark 2.0之前,它已经存在,但现在已经不存在了。 Databricks并未更新本教程。 您可以通过转换为rdd来映射 ,即df.rdd

首先请注意:有两个单独的ML库:第一个(您已从中导入线性代数库)是pyspark.ml 第二个是pyspark.mllib ,从中导入LabelPoint

试图互操作这两个包是一条充满痛苦的道路。 尝试坚持下去,并坚持下去。

第二,关于例外情况: temp = df.select("a","b").map(...) df是一个DataFrame ,它没有map方法。

但是,请采纳我的第一个建议-不要混合使用mllibml模块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM