gpt4 book ai didi

python - 如何在 Pyspark 数据框中将 ArrayType 的 2 列连接到 axis = 1 上?

转载 作者:行者123 更新时间:2023-12-01 06:45:11 27 4
gpt4 key购买 nike

我有以下数据框:

我想将纬度经度连接到一个列表中。其中mmsi类似于ID(这是唯一的)

+---------+--------------------+--------------------+
| mmsi| lat| lon|
+---------+--------------------+--------------------+
|255801480|[47.1018366666666...|[-5.3017783333333...|
|304182000|[44.6343033333333...|[-63.564803333333...|
|304682000|[41.1936, 41.1715...|[-8.7716, -8.7514...|
|305930000|[49.5221333333333...|[-3.6310166666666...|
|306216000|[42.8185133333333...|[-29.853155, -29....|
|477514400|[47.17205, 47.165...|[-58.6317, -58.60...|

因此,我想连接经纬度数组,但在 axis = 1 上,也就是说,我希望在单独的列中在末尾有一个列表列表,例如:

[[47.1018366666666, -5.3017783333333], ... ]

这在 pyspark 数据框中怎么可能?我尝试过 concat,但会返回:

[47.1018366666666, 44.6343033333333, ..., -5.3017783333333, -63.564803333333, ...]

非常感谢任何帮助!

最佳答案

从Spark 2.4版本开始,您可以使用内置函数 arrays_zip

from pyspark.sql.functions import arrays_zip
df.withColumn('zipped_lat_lon',arrays_zip(df.lat,df.lon)).show()

关于python - 如何在 Pyspark 数据框中将 ArrayType 的 2 列连接到 axis = 1 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59255017/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com