我正在尝试将from_json与以下JSON字符串一起使用,并且需要指定一个架构。哪种模式与该JSON匹配?
[{"key": "value1"}, {"key": "value2"}]
作为一种变通方法,我正在做一个字符串concat来将JSON转换为JSON(即添加一个数组名)。
{ "data": [{"key": "value1"}, {"key": "value2"}] }
然后,我可以使用以下架构。但是,应该可以在不更改原始JSON的情况下指定架构。
schema = StructType([
StructField("data", ArrayType(
StructType([
StructField("key", StringType())
])
))
])
答案 0 :(得分:0)
嗨,这是例子
df = self.spark.createDataFrame(['[{"key": "value1"}, {"key": "value2"}]'], StringType())
df.show(1, False)
schema = ArrayType(StructType([StructField("key", StringType(), True)]))
df = df.withColumn("json", from_json("value", schema))
df.show()
+--------------------------------------+
|value |
+--------------------------------------+
|[{"key": "value1"}, {"key": "value2"}]|
+--------------------------------------+
+--------------------+--------------------+
| value| json|
+--------------------+--------------------+
|[{"key": "value1"...|[[value1], [value2]]|
+--------------------+--------------------+