2016-11-07 64 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列矩陣)。