在python spark中解析存储在表列中的json

时间:2019-03-26 10:43:42

标签: python pyspark databricks

尝试解析json并使用python spark将列添加到df

 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'
}
]

想要获取选定状态并将其添加到tableDF的选定列中。

有人可以帮忙实现同样的目的吗

1 个答案:

答案 0 :(得分:0)

您可能想要类似的东西:

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

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