用flatmap替换python spark explode

8iwquhpp  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(231)

我有一个由map函数构造的rdd,它计算ltremap、gtremap和dataset列。这些列ltremap和gtremap将返回一个列表,其目的是在许多“ltremap”中可能存在某些地理点。

columns = ["Index", "Longitude", "Latitude", "LTremap", "GTremap", "Dataset"]
file_2_boxes = file_2.rdd.map(lambda x: mapx(x)).toDF(columns)

为了将列表转换成行,我使用explode。

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函数来实现它,有什么想法吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题