我是Spark DataFrame转换的新手,正在尝试读取json格式的列。 示例:
{'af_content_id': [12461515],
'af_currency': 'RB',
'af_order_id': 27671679,
'af_price': [31250],
'af_quantity': [1],
}
但是我只需要保留此列json属性中的一个属性,即af_content_id
。所以我做到了:
schema = StructType([StructField("af_content_id",StringType(),True)])
df_data_events = df_purchases.select(func.from_json(func.col('event_data'), schema).alias('content_id'))
df_purchases DataFrame中的行示例:
Row(user_id=u'E9C59152-731C-41E6-B388-361F7BD743B8', event_data=u'{"af_quantity":1,"af_content_id":37359869,"af_revenue":412.87}', ts=datetime.datetime(2018, 12, 10, 9, 19, 53))
通过使用show()
函数进行检查,它可以正常工作,但是我不能真正确定后面会发生什么。.spark是如何使用此模式读取列的。只是在寻找af_content_id
吗?如果没有连续找到该怎么办?