Pyspark LabeledPoint错误

时间:2016-11-07 21:50:47

标签: apache-spark pyspark

我一直在研究pyspark的分类问题,并创建了一个RDD和地图,但是当我尝试添加LabeledPoint时,我收到了错误

 Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.runJob.

以下是代码和输出:

 %pyspark
 from pyspark.mllib.regression import LabeledPoint

 features = df.map(lambda row: row[0:15])
 print features.take(1)
 [(u'12.95', u'AOL.COM', u'3', u'1', u'-4276', u'7', u'0', u'1', u'1', u'1', u'0', u'1', u'0', u'0', u'1')]

 lab = df.map(lambda row: row[16])
 print lab.take(1)
 [u'0']

 transformedData = lab.zip(features)
 print transformedData.take(2)
 [(u'0', (u'12.95', u'AOL.COM', u'3', u'1', u'-4276', u'7', u'0', u'1', u'1', u'1', u'0', u'1', u'0', u'0', u'1')), (u'0', (u'11.01', u'AOL.COM', u'3', u'1', u'-4276', u'7', u'0', u'1', u'1', u'1', u'0', u'1', u'0', u'0', u'1'))]

 transformedData = transformedData.map(lambda row: LabeledPoint(row[0],[row[1]]))
 print transformedData.take(2)
 Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.runJob.

1 个答案:

答案 0 :(得分:0)

第二个参数是数字向量或列表而不是字符串列表:

  

参数:

     
      
  • label - 此数据点的标签。
  •   
  • features - 此点的特征向量(NumPy数组,列表,pyspark.mllib.linalg.SparseVector或scipy.sparse列矩阵)。
  •