PySpark将对象数组(JSON格式)解析为一列df

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",

我有一个嵌套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这种数据帧有什么用处?之后你将如何进行?