我想将嵌套列展平为单独的列,其中只包含几个特定值。
首先,我从Event hub的AVRO捕获文件开始。一旦我将其转换为python中的dataframe,在删除不相关的数据帧后,我将收到以下列。

此列具有以下结构。

我下一步要做的是展平该列的剩余特定值。
我可以在一个单元格上做到这一点,但是因为我处理的是嵌套结构,所以列是不可迭代的。
有谁能帮我吗?

发布于 2021-05-24 11:32:08
您的模式中有两个data字段,所以我将第一个字段称为data_struct,将第二个字段称为data_array。如果使用avro_df_body.select('data_struct.data_array'),您将拥有一个ArrayType列,您可以应用explode函数将其分解为多行。
(avro_df_body
.withColumn('tmp', F.explode('data_struct.data_array'))
.withColumn('speed', F.col('tmp.a'))
.withColumn('timestamp', F.col('tmp.time'))
.show()
)https://stackoverflow.com/questions/67566592
复制相似问题