繁体   English   中英

Pyspark 将 StructType 转换为 ArrayType<StructType>

[英]Pyspark Cast StructType as ArrayType<StructType>

我有一个数据框 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() 函数的简单解决方案:

输入:

df1(带有 ArrayType(StructType()) 列):

在此处输入图片说明

df2(带有 StructType() 列):

在此处输入图片说明

代码:

df2=(df2
     .withColumn('recipientResource',array(col('recipientResource'))) #convert StructType() column to ArrayType(StructType()) column
    )

输出:

修改后的df2:

在此处输入图片说明

df3(df1 和 df2 合并后的输出):

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM