【发布时间】:2022-12-17 21:32:16
【问题描述】:
需要合并小的镶木地板文件。我在 hdfs 中有多个小镶木地板文件。 我喜欢将每个镶木地板文件合并到近 128 MB 2. 所以我使用 spark.read() 读取所有文件 并在上面做了 repartition() 并写入 hdfs 位置
我的问题是 我有大约 7.9 gb 的数据,当我重新分区并保存到 hdfs 时,它接近 22。
我与 repartition , range , coalesce 联系在一起但没有得到解决方案
【问题讨论】:
-
重新分区后,所有文件的总大小为 22gb,而之前(因此没有分区)是较小的数字,对吗?如果是,差异有多大?
-
请展示 coe,那总是更好。
-
val df = spark.read.parquet("path/to/parquet/*.*"); df.repartition(10).write.mode(SaveMode.Overwrite).option("compression","snappy").parquet("/path/to/file")
标签: scala apache-spark hdfs apache-spark-sql-repartition