解析存储在Python Spark中的表列中的JSON

问题描述 投票:0回答:1

我正在尝试解析JSON并使用Python Spark将列添加到DataFrame:

tableDF = spark.sql("select  * from transaction")

stats_df = parseJSONCols(tableDF)

def parseJSONCols(df):
    res = df
    cols = ['State']

    for i in cols:
        schema = spark.read
            .json(res.rdd.map(lambda x: x[i]))
            .schema
        res = res.withColumn("selectedState", lit(filterSelectedState(col(i))))

    return res

其中State是具有此结构的JSON字符串:

[
    {
        isSelected: true,
        name: 'x'
    },
    {
        isSelected: false,
        name: 'y'
    }
]

我想提取isSelected字段的值,并将其添加到selectedtableDF列中。

有人可以帮助我实现这个目标吗?

python pyspark databricks
1个回答
0
投票

你可能想要这样的东西:

df = df.withColumn('isSelected', f.col('State').getItem('isSelected'))

但是,看看stats_df.take(2)的输出会很有用,这样我们就可以看到你正在处理的DF的确切结构。

© www.soinside.com 2019 - 2024. All rights reserved.