[HADOOP] 파일은 언제 "분할 가능"합니까?
HADOOP파일은 언제 "분할 가능"합니까?
내가 스파크를 사용할 때, 나는 때때로 HIVE 테이블에서 거대한 하나의 파일을 실행하고 때로는 HIVE 테이블에 더 작은 파일을 많이 처리하려고합니다.
스파크 작업을 조정할 때 파일이 분할 가능한지 여부에 따라 작동 방식이 달라진다는 것을 이해합니다. cloudera의이 페이지에서는 파일이 분리 가능한지 여부를 알아야한다고 말합니다.
해결법
-
==============================
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 파일은 분할 가능합니다.
자세한 내용은이 기사를 참조하십시오.
from https://stackoverflow.com/questions/34208051/when-are-files-splittable by cc-by-sa and MIT license