如何解决Python Spark 用 flatMap 爆炸替换
我有一个由 map 函数构造的 RDD,它计算 LTremap、GTremap 和 Dataset 列。这些列 LTremap 和 GTremap 返回一个列表,想法是一些 GeoPoints 可能存在于许多“LTremap”中。
columns = ["Index","Longitude","Latitude","LTremap","GTremap","Dataset"]
file_2_boxes = file_2.rdd.map(lambda x: mapx(x)).toDF(columns)
为了将列表转换为行,我使用了爆炸。
file_2_boxes = file_2_boxes.select(col("Index"),col("Longitude"),col("Latitude"),F.explode(col("LTremap")).alias("LTremap"),col("GTremap"),col("Dataset"))
举个例子,从这个:
Index Longitude Latitude LTremap GTremap Dataset
1 80 3 [21,12] [2,1] 1
1 80 3 11 1 1
为此:
Index Longitude Latitude LTremap GTremap Dataset
1 80 3 21 2 1
1 80 3 12 1 1
1 80 3 11 1 1
但是当有大量数据时,explode 性能不佳,所以我正在寻找一种使用 flatMap 函数来实现这一点的方法,有什么想法吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。