Разбор JSON хранится в столбце таблицы в Python Spark - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь проанализировать JSON и добавить столбец в DataFrame с помощью Python Spark:

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 и добавить его в столбец selected в tableDF.

Может кто-нибудь помочь мне в этом?

1 Ответ

0 голосов
/ 26 марта 2019

Вы, вероятно, хотите что-то вроде:

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

Однако было бы полезно увидеть результат, скажем, stats_df.take(2), чтобы мы могли видеть точную структуру DF, с которой вы имеете дело.

...