PySpark将对象数组(JSON格式)解析为一列df
我有一个嵌套JSON对象数组,如下所示:PySpark将对象数组(JSON格式)解析为一列df,json,apache-spark,pyspark,Json,Apache Spark,Pyspark,我有一个嵌套JSON对象数组,如下所示: [ { "a": 1, "n": {} } ] 我想用一列将这个JSON文件(多行)读入spark DataFrame。其中列具有StringType并包含JSON对象: +----------+ | json | +----------+ | {"a": 1, | | "n": {}} | +----------+ 我试着做到以下几点: schema = StructType([StructField("json",
[
{
"a": 1,
"n": {}
}
]
我想用一列将这个JSON文件(多行)读入spark DataFrame。其中列具有StringType并包含JSON对象:
+----------+
| json |
+----------+
| {"a": 1, |
| "n": {}} |
+----------+
我试着做到以下几点:
schema = StructType([StructField("json", StringType(), True)])
spark.read.json('test.json', multiLine=True).show()
但它不起作用。在PySpark中是否有这样做的选项?我自己找到了解决方案:
json_schema = StructType([
StructField("json", StringType(), True)
])
df.toJSON().map(lambda x: [x]).toDF(schema=json_schema).show()
您应该使用
spark.read.option('multiline',True).text('test.json').show()
@RameshMaharjan,实际上它将整个数组读入一行。我想把每个对象读入不同的行。你能用示例更新吗?@RameshMaharjan,done这种数据帧有什么用处?之后你将如何进行?