我有一个字典列表,如下所示。每本字典都是一个列表项。
my_list= [{"_id":1,"name":"xxx"},
{"_id":2,"name":"yyy"},
{"_id":3,"_name":"zzz"}]
我正在尝试将列表转换为pysparkDataframe,每个字典都是一行。
from pyspark.sql.types import StringType
df = spark.createDataFrame(my_list, StringType())
df.show()
我的理想结果如下:
+-----------------------------------------+
| dic|
+-----------------------------------------+
|{"_id":1,"name":"xxx"}|
|{"_id":2,"name":"yyy"}|
|{"_id":3,"_name":"zzz"}|
+-----------------------------------------+
但我错了:
org.apache.spark.sparkexception:由于阶段失败而中止作业:阶段25.0中的任务0失败了4次,最近的失败:阶段25.0中丢失了任务0.3(tid 95,10.0.16.11,executor 0):org.apache.spark.api.pythonnexception:'pyspark.serializers.serializationerror:由回溯引起(最近的调用最后一次):
我的代码怎么了?
2条答案
按热度按时间mf98qq941#
spark可能很难将python词典转换为字符串。在创建Dataframe之前,可以将字典转换为字符串:
qv7cva1a2#
在创建Dataframe之前,需要将dict转换为字符串。但是,我建议您不要将值存储为字符串化的dict。为以后的进一步转换解析它们并不容易。改用json字符串: