【发布时间】:2018-10-21 02:00:31
【问题描述】:
我有一个数据框 df1,其列 col1 具有结构:
StructField(recipientResource,ArrayType(StructType(List(StructField(resourceId,StringType,true),StructField(type,StringType,true))),true),true)
和另一个具有 col1 结构的数据框 df2:
StructField(recipientResource,StructType(List(StructField(resourceId,StringType,true),StructField(type,StringType,true))),true)
为了联合 df1.union(df2),我尝试将 df2 中的列转换为将其从 StructType 转换为 ArrayType(StructType),但是我尝试过的没有任何结果。
任何人都可以建议如何做同样的事情。 我是 pyspark 的新手,不胜感激。
【问题讨论】:
-
array<struct<...>>和struct<...>是两个完全不同的对象 - 您不能将一个对象转换为另一个对象。如果这就是您的意思,您可以添加包装array,例如select(array(struct_column))。 -
一个minimal reproducible example 与您的数据帧的小样本和所需的输出会有所帮助。在how to create good reproducible apache spark dataframe examples 上查看更多信息。
标签: python apache-spark dataframe pyspark spark-dataframe