Как получить доступ к значениям 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 >>))