首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >触发不相同的输入/输出目录大小(对于相同的数据)

触发不相同的输入/输出目录大小(对于相同的数据)
EN

Stack Overflow用户
提问于 2017-03-24 10:20:32
回答 1查看 84关注 0票数 0

以减少NameNode分配的块数。我正在尝试将一些小文件连接到128‘m文件。这些小文件采用gz格式,128 be文件也必须采用gz格式。

要做到这一点,我将得到所有小文件的和大小,并将这个和大小除以128,以获得我需要的文件数。

然后我执行一个rdd.repartition(nbFiles).saveAsTextFile(PATH,classOf[GzipCodec])

问题是我的输出目录大小高于我的输入目录大小(高10%)。我测试了默认的和最佳的压缩级别,并且我总是获得更高的输出大小。

我不知道为什么我的输出目录比我的输入目录更高,但我想它是链接到我正在重新划分输入目录的所有文件的事实。

有人能帮我弄明白为什么我会得到这个结果吗?

谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-24 12:33:22

压缩级别将取决于数据分布。当您rdd.repartition(nbFiles)随机地对所有数据进行洗牌时,如果输入中存在某种结构,从而降低了熵并启用了更好的压缩,那么它将丢失。

您可以尝试其他一些方法,比如colaesce,而无需洗牌或排序,以确定是否可以获得更好的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42996885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档