2017-01-24 4 views

답변

1

AlterTable/PartitionConcatenate에 따라 경찰 : 테이블 또는 파티션이 많은 작은 RCFiles 또는 ORC 파일이 포함되어있는 경우

, 다음 위의 명령은 큰 파일로 병합합니다. RCFile의 경우 병합은 블록 수준에서 발생하지만 ORC 파일의 경우 병합이 스트라이프 수준에서 발생하므로 데이터 압축 풀기 및 디코딩의 오버 헤드가 발생하지 않습니다. 또한 ORC Stripes

는 :

ORC 파일의 본문은 줄무늬의 시리즈로 구성되어 있습니다. 줄무늬는 대개 크기가 크고 (일반적으로 ~ 200MB) 서로 독립적이며 은 다른 작업으로 처리됩니다. 열 형식 저장 형식의 특징을 정의하면 각 열의 데이터는 으로 별도로 저장되며 파일에서 데이터를 읽는 것은 읽은 열의 수인 에 비례해야합니다. ORC 파일에서 각 열은 파일에서 서로 옆에 에 저장된 여러 스트림에 저장됩니다. 예를 들어, 정수 열은 두 개의 스트림 PRESENT로 표현되는 이며 값이 null이 아닌 경우 값 기록 당 비트가있는 값을 사용하고 이 아닌 값을 기록하는 DATA를 사용합니다. 스트라이프의 모든 열 값이 null이 아닌 경우 PRESENT 스트림이 스트라이프에서 생략됩니다. 이진 데이터의 경우 ORC 은 PRESENT, DATA 및 LENGTH의 세 가지 스트림을 사용하며 각 값의 길이는 입니다. 각 유형에 대한 자세한 내용은 하위 섹션 인 에 나와 있습니다.

스파크에서 구현을 위해 당신이 불꽃 컨텍스트의 도움으로 SparkSQL를 사용할 수 있습니다

scala> val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc) 

scala> sqlContext.sql("Your_hive_query_here")