0
我有一个dataframe df,其中包含13个以逗号分隔的值。我想在df2中获得一个包含标记点的数据框。价值是标签,其他十二个是特征。我使用拆分和选择方法将具有13值的字符串划分为13个值的数组。地图方法允许我创建标记点。错误当我使用toDF()方法来RDD转换成数据帧将LabeledPoint的RDD转换为DataFrame到DF()错误
df2 = df.select(split(df[0], ',')).map(lambda x: LabeledPoint(float(x[0]),x[-12:])).toDF()
org.apache.spark.SparkException:作业已中止由于舞台故障:
,当我看在stackerror我发现: IndexError:元组索引超出范围。
为了做测试,我执行:
display(df.select(split(df[0], ',')))
我获得我的13个值中的阵列的每一行:
["2001.0","0.884123733793","0.610454259079","0.600498416968","0.474669212493","0.247232680947","0.357306088914","0.344136412234","0.339641227335","0.600858840135","0.425704689024","0.60491501652","0.419193351817"]
任何主意?
如何将CSV加载到数据框中?在我看来,错误可能在split(df [0],',')。看来你只使用一列。 –
'x [-12:]'给出了错误。 ''split''后可能检查你实际上有13个值? – ShuaiYuan
我重新编辑我的帖子。我测试这个命令显示(df.select(split(df [0],',')))就像我在帖子中说的,我正确地获得了我的13个值... –