Как получить доступ к значениям JSON из фреймов данных PySpark со значениями по умолчанию?

У меня есть искровой фрейм с Json на одном из столбцов. Моя задача - превратить этот фрейм данных в столбчатый тип фрейма данных. Проблема в том, что JSON является динамическим и всегда меняет структуру. То, что я хотел бы сделать, это попытаться получить значения из него и, если он, а если его нет, вернуть значение по умолчанию. Есть ли опция для этого в кадре данных? Это то, как я беру значения из JSON, проблема в том, что в случае, если один из уровней изменяет имя или структуру, он не потерпит неудачу.

columnar_df = df.select(col('json')['level1'].alias('json_level1'),
col('json')['level1']['level2a'].alias('json_level1_level2a'),
col('json')['level1']['level2b'].alias('json_levelb'),
)

1 ответ

Вы можете сделать что-то подобное с json_tuple

https://spark.apache.org/docs/2.2.0/api/python/pyspark.sql.html

df.select(json_tuple(col("json"), << all_the_fields, _you_want >>))

Другие вопросы по тегам