[HADOOP] Spark에서 ORC 속성을 구성 할 수 없습니다.
HADOOPSpark에서 ORC 속성을 구성 할 수 없습니다.
Spark 1.6 (Cloudera 5.8.2)을 사용 중이며 아래의 ORC 속성을 구성하는 방법을 시도했습니다. 그러나 출력에는 영향을 미치지 않습니다.
아래 코드는 제가 시도한 것입니다.
DataFrame dataframe =
hiveContext.createDataFrame(rowData, schema);
dataframe.write().format("orc").options(new HashMap(){
{
put("orc.compress","SNAPPY");
put("hive.exec.orc.default.compress","SNAPPY");
put("orc.compress.size","524288");
put("hive.exec.orc.default.buffer.size","524288");
put("hive.exec.orc.compression.strategy", "COMPRESSION");
}
}).save("spark_orc_output");
이 외에도 hive-site.xml 및 hiveContext 객체에도 이러한 속성을 설정해 보았습니다.
hive --orcfiledump on output은 구성이 적용되지 않았 음을 확인합니다. Orcfiledump 스 니펫은 아래에 있습니다.
Compression: ZLIB
Compression size: 262144
해결법
-
==============================
1.여기서 두 가지 다른 오류를 만들고 있습니다. 나는 너를 비난하지 않는다. 나 거기 가봤 어...
여기서 두 가지 다른 오류를 만들고 있습니다. 나는 너를 비난하지 않는다. 나 거기 가봤 어...
이슈 # 1 orc.compress이고 나머지는 Spark DataFrameWriter 옵션이 아닙니다. 그것들은 HiveContext 객체를 생성하기 전에 정의되어야하는 Hive 구성 속성입니다 ...
sc.getConf.get ( "orc.compress", "
") // Hadoop conf에 의존합니다. sc.stop val scAlt = 새로운 org.apache.spark.SparkContext ((새로운 org.apache.spark.SparkConf) .set ( "orc.compress", "snappy")) scAlt.getConf.get ( "orc.compress", " ") // 이제 Snappy가됩니다. val hiveContextAlt = 새로운 org.apache.spark.sql.SQLContext (scAlt) [편집] 스파크 2.x와 스크립트가 될 것입니다 ... spark.sparkContext.getConf.get ( "orc.compress", "
") // Hadoop conf에 의존합니다. spark.close sparkAlt = org.apache.spark.sql.SparkSession.builder (). config ( "orc.compress", "snappy"). getOrCreate () sparkAlt.sparkContext.getConf.get ( "orc.compress", " ") // 이제 Snappy가됩니다. 이슈 # 2 Spark은 ORC (및 마루, JSON, CSV 등) 용 자체 SerDe 라이브러리를 사용하므로 표준 Hadoop / Hive 속성을 따를 필요가 없습니다.
마루에 대한 일부 Spark 특유의 속성이 있으며 잘 문서화되어 있습니다. 다만, hiveContext를 작성 (또는 재 작성)하기 전에, 이러한 프롭퍼티를 설정할 필요가 있습니다.
ORC 및 다른 형식의 경우 형식 별 DataFrameWriter 옵션을 사용해야합니다. 최신 JavaDoc 인용하기 ...
Spark 2에서는 기본 압축 코덱이 변경되었습니다. 그 전에 그것은 zlib이었다.
그래서 당신이 설정할 수있는 유일한 것은 압축 코덱입니다.
dataframe.write().format("orc").option("compression","snappy").save("wtf")
from https://stackoverflow.com/questions/41756775/unable-to-configure-orc-properties-in-spark by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 빈 문자열은 하이브에서 null로 처리되지 않습니다. (0) | 2019.06.19 |
---|---|
[HADOOP] Hadoop 분산 캐시에서 파일 재사용 (0) | 2019.06.19 |
[HADOOP] Hadoop 0.20+를 사용하여 여러 출력 파일 생성하기 (0) | 2019.06.19 |
[HADOOP] FAILED : 메타 데이터 오류 : java.lang.RuntimeException : org.apache.hadoop.hive.metastore.HiveMetaStoreClient를 인스턴스화 할 수 없습니다. (0) | 2019.06.19 |
[HADOOP] hdfs 용량을 늘릴 수있는 방법 (0) | 2019.06.19 |