【发布时间】:2020-08-14 21:54:08
【问题描述】:
有什么方法可以在不排序的情况下从数据帧重新分区中获得确定性结果?在下面的代码中,我在执行相同的操作时得到了不同的结果。
from pyspark.sql.functions import rand, randn
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
df = sqlContext.range(0, 100000)
# repartition dataframe to 5 partitions
df2 = df.repartition(5).persist()
df2.head(5)
Out[1]: [Row(id=5324), Row(id=5389), Row(id=6209), Row(id=7640), Row(id=8090)]
df2.unpersist()
df3 = df.repartition(5).persist()
df3.head(5)
Out[2]: [Row(id=1019), Row(id=652), Row(id=2287), Row(id=470), Row(id=1348)]
Spark 版本 - 2.4.5
【问题讨论】:
-
那会慢一些。做orderby。
-
感谢您的评论。我正在寻找不排序的方法(也编辑了帖子)。不确定这是否可能。
-
您使用的是什么 Spark 版本?
-
@mazaneicha 我使用的是 Spark 2.4.5
标签: apache-spark pyspark