我總是得到這個錯誤: AnalysisException:由於數據類型不匹配,u「無法解析'substring(1,1,-1)':參數1需要(字符串或二進制)類型,但' l'是陣列類型的;「spark無法創建LabeledPoint
很混亂,因爲l [0]是一個字符串,並且與arg 1匹配。 dataframe只有一列名爲'value'的列,它是一個逗號分隔的字符串。 我想將此原始數據框轉換爲LabeledPoint對象的另一個數據框,第一個元素爲'label',其他元素爲'features'。
from pyspark.mllib.regression import LabeledPoint
def parse_points(dataframe):
df1=df.select(split(dataframe.value,',').alias('l'))
u_label_point=udf(LabeledPoint)
df2=df1.select(u_label_point(col('l')[0],col('l')[1:-1]))
return df2
parsed_points_df = parse_points(raw_data_df)
您應該改善的問題,我無法理解這一點。 –