복붙노트

[HADOOP] 파일은 언제 "분할 가능"합니까?

HADOOP

파일은 언제 "분할 가능"합니까?

내가 스파크를 사용할 때, 나는 때때로 HIVE 테이블에서 거대한 하나의 파일을 실행하고 때로는 HIVE 테이블에 더 작은 파일을 많이 처리하려고합니다.

스파크 작업을 조정할 때 파일이 분할 가능한지 여부에 따라 작동 방식이 달라진다는 것을 이해합니다. cloudera의이 페이지에서는 파일이 분리 가능한지 여부를 알아야한다고 말합니다.

해결법

  1. ==============================

    1.Spark이 Hadoop 입력 파일을 받아들이는 것을 고려해 볼 때, 아래 이미지를보십시오.

    Spark이 Hadoop 입력 파일을 받아들이는 것을 고려해 볼 때, 아래 이미지를보십시오.

    bzip2 형식의 파일 만 분할 가능하며 zlib, gzip, LZO, LZ4 및 Snappy 형식과 같은 다른 형식은 분할 할 수 없습니다.

    파티션에 대한 쿼리와 관련하여 파티션은 사용할 파일 형식에 의존하지 않습니다. 파일의 내용에 따라 다릅니다. - 날짜 등의 분할 된 열 값

    편집 1 : 이 SE 질문과 Spark 독서 zip 파일에 대한이 작업 코드를 살펴보십시오.

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

    편집 2 :

    LZO 파일은 분할 가능합니다.

    자세한 내용은이 기사를 참조하십시오.

  2. from https://stackoverflow.com/questions/34208051/when-are-files-splittable by cc-by-sa and MIT license