如何在Spark中将镶木地板文件拆分为多个分区?

 倒带灬樱花巷_317 发布于 2022-12-09 09:36

所以我只有一个镶木地板文件,我正在阅读Spark(使用SQL的东西),我希望它可以处理100个分区.我已经尝试设置spark.default.parallelism为100,我们也尝试将拼花的压缩更改为无(来自gzip).无论我们做什么,火花作业的第一阶段只有一个分区(一旦发生洗牌,它就被重新划分为100,此后显然事情要快得多).

现在根据一些消息来源(如下),镶木地板应该是可拆分的(即使使用gzip!),所以我非常困惑,并且会喜欢一些建议.

https://www.safaribooksonline.com/library/view/hadoop-application-architectures/9781491910313/ch01.html

我正在使用spark 1.0.0,显然默认值spark.sql.shuffle.partitions是200,所以不能这样.事实上,并行性的所有默认值都远远超过1,所以我不明白发生了什么.

1 个回答
  • 您应该使用较小的块大小编写镶木地板文件.默认值为每块128Mb,但可以通过parquet.block.size在writer中设置配置来配置.

    如果你想深入细节,ParquetOuputFormat的来源就在这里.

    块大小是你可以从一个逻辑上可读的镶木地板文件中读出的最小数据量(因为镶木地板是柱状的,你不能只是按行分割或像这样简单的东西),所以你不能有更多的阅读线程比输入块.

    2022-12-11 01:59 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有