如何在Pyspark中创建嵌套的json?

时间:2019-01-31 09:49:55

标签: python-3.x apache-spark pyspark pyspark-sql

我正在尝试从下面的数据创建嵌套的json。只有诸如segidval之类的字段名称是常量,其余字段不是常量。我需要将它们放在类别列表下。能否请你帮忙。

enter image description here

预期输出:

[{
    "seg": "1",
    "Value": 10,
    "Categories": {
        "Bangalore": 2,
        "Pune": 3
    }
}]

1 个答案:

答案 0 :(得分:0)

pyspark.sql.functions.struct基本上可以为您提供类似的东西:

from pyspark.sql import functions as F


df.withColumn("Categories", F.struct(F.col("Bangalore"), F.col("Pune")))

df用作包含感兴趣的JSON的Spark DataFrame,将JSON嵌套在现有的JSON之下,您只需创建一个新的Struct即可,其中包含要嵌套的字段。

有关更多详细信息,请参见文档页面https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.functions.struct