我有以下数据框:
我想将纬度和经度连接成一个列表。其中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...|
因此,我想将lat和lon数组连接起来,但在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()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句