当前位置:  开发笔记 > 大数据 > 正文

什么时候文件"可拆分"?

如何解决《什么时候文件"可拆分"?》经验,为你挑选了1个好方法。

当我使用spark时,我有时会在HIVE表中遇到一个巨大的文件,我有时会尝试在HIVE表中处理许多较小的文件.

我知道在调整spark工作时,它的工作原理取决于文件是否可拆分.在cloudera的这个页面中,它说我们应该知道这些文件是否可以拆分:

...例如,如果您的数据到达几个大的不可分割的文件......

    我怎么知道我的文件是否可拆分?

    如果文件是可拆分的,我如何知道要使用的分区数?

    如果我正在尝试编写一段可以在任何HIVE表上工作的代码,即上述两种情况中的任何一种,那么在更多分区方面犯错是否更好?

Ravindra bab.. 7

考虑到Spark接受Hadoop输入文件,请看下面的图像.

只有bzip2格式化的文件是可拆分的,其他格式如zlib, gzip, LZO, LZ4 and Snappy格式不可拆分.

关于您对分区的查询,分区不依赖于您将要使用的文件格式.它取决于文件中的内容 - 分区列的值,如日期等.

在此输入图像描述

编辑1: 看看这个SE问题和Spark读取zip文件的这个工作代码.

JavaPairRDD fileNameContentsRDD = javaSparkContext.wholeTextFiles(args[0]);
        JavaRDD lineCounts = fileNameContentsRDD.map(new Function, String>() {
            @Override
            public String call(Tuple2 fileNameContent) throws Exception {
                String content = fileNameContent._2();
                int numLines = content.split("[\r\n]+").length;
                return fileNameContent._1() + ":  " + numLines;
            }
        });
        List output = lineCounts.collect();

编辑2:

LZO文件可以拆分.

只要分块出现在块边界上,就可以拆分LZO文件

有关更多详细信息,请参阅此文章.



1> Ravindra bab..:

考虑到Spark接受Hadoop输入文件,请看下面的图像.

只有bzip2格式化的文件是可拆分的,其他格式如zlib, gzip, LZO, LZ4 and Snappy格式不可拆分.

关于您对分区的查询,分区不依赖于您将要使用的文件格式.它取决于文件中的内容 - 分区列的值,如日期等.

在此输入图像描述

编辑1: 看看这个SE问题和Spark读取zip文件的这个工作代码.

JavaPairRDD fileNameContentsRDD = javaSparkContext.wholeTextFiles(args[0]);
        JavaRDD lineCounts = fileNameContentsRDD.map(new Function, String>() {
            @Override
            public String call(Tuple2 fileNameContent) throws Exception {
                String content = fileNameContent._2();
                int numLines = content.split("[\r\n]+").length;
                return fileNameContent._1() + ":  " + numLines;
            }
        });
        List output = lineCounts.collect();

编辑2:

LZO文件可以拆分.

只要分块出现在块边界上,就可以拆分LZO文件

有关更多详细信息,请参阅此文章.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有