2016-11-07 94 views
0

我一直工作在分类问题pyspark,并创建了一个RDD和地图,但是当我尝试添加LabeledPoint我得到的错误Pyspark 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. 

回答

0

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

参数:

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