sparkDataframe松散分区

uyhoqukh  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(424)

我在读取sparkDataframe时发现了这个奇怪的问题。我将Dataframe重新划分为50k个分区。但是,当我读取并对Dataframe执行计数操作时,我发现在使用spark 2.0时,底层rdd只有2143个分区。
所以我去了保存重新分区数据的路径,发现

hfs -ls /repartitionedData/ | wc -l
50476

因此,它在保存数据的同时创建了5万个分区。
但是在spark 2.0中,

val d = spark.read.parquet("repartitionedData")
d.rdd.getNumPartitions
res4: Int = 2143

但Spark1.5,

val d = spark.read.parquet("repartitionedData")
d.rdd.partitions.length
res4: Int = 50474

有人能帮我吗?

s2j5cfk0

s2j5cfk01#

这并不是说您正在丢失数据,而是仅仅更改分区的数量。filesourcestrategy将Parquet文件组合到更少的分区中,并对数据进行重新排序。
当spark升级到新版本时,这种情况发生了变化 2.0 . 你可以在这里找到一些相关的bug报告。

相关问题