a.m*_*ssa 3 python pyspark spark-dataframe
我有一个由函数生成的列表.当我print在我的列表上执行时:
print preds_labels
我获得:
[(0.,8.),(0.,13.),(0.,19.),(0.,19.),(0.,19.),(0.,19.),(0.,19.),(0.,20.),(0.,21.),(0.,23.)]
Run Code Online (Sandbox Code Playgroud)
但是当我想DataFrame用这个命令创建一个时:
df = sqlContext.createDataFrame(preds_labels, ["prediction", "label"])
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息:
不支持的类型:输入'numpy.float64'
如果我手动创建列表,我没有问题.你有好主意吗?
Shu*_*uan 10
pyspark使用自己的类型系统,不幸的是它不能很好地处理numpy.它适用于python类型.所以你可以手动转换numpy.float64为float喜欢
df = sqlContext.createDataFrame(
[(float(tup[0]), float(tup[1]) for tup in preds_labels],
["prediction", "label"]
)
Run Code Online (Sandbox Code Playgroud)
注意pyspark然后将它们视为 pyspark.sql.types.DoubleType