You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PySpark中对嵌套数组执行pop与melt操作

你遇到的TypeError: 'Column' object is not callable报错,是因为PySpark的Column对象没有pandas Series的values.tolist()方法,且你对explode的调用方式不符合PySpark的语法规则。

要实现和你提供的pandas代码同等的效果,可以使用posexplode函数完成数组拆分与索引生成,再拆分单个gps元素为多列,具体实现代码如下:

from pyspark.sql.functions import posexplode, col

# posexplode会同时返回数组元素的索引(对应melt后的variable列)和元素本身
df2 = df.select("ifa", posexplode("gps").alias("variable", "gps_item")) \
        .select(
            "ifa",
            "variable",
            col("gps_item")[0].alias("0"),
            col("gps_item")[1].alias("1"),
            col("gps_item")[2].alias("2")
            # 若gps子数组还有更多字段,按对应索引继续添加即可
        )

运行上述代码得到的输出结构和你给出的预期示例完全一致。

内容的提问来源于stack exchange,提问作者Nabih Bawazir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 12:27:05