#python #pyspark #databricks
#python #pyspark #блоки данных
Вопрос:
Я пытаюсь проанализировать JSON и добавить столбец во фрейм данных с помощью 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:
Вы, вероятно, хотите что-то вроде:
df = df.withColumn('isSelected', f.col('State').getItem('isSelected'))
Однако было бы полезно просмотреть выходные данные say stats_df.take(2)
, чтобы мы могли видеть точную структуру DF, с которой вы имеете дело.