我有一个由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函数来实现它,有什么想法吗?
暂无答案!
目前还没有任何答案,快来回答吧!