복붙노트

[HADOOP] 표 하이브에서 액세스 할 수 없습니다 스파크를 통해로드

HADOOP

표 하이브에서 액세스 할 수 없습니다 스파크를 통해로드

스파크 (pyspark)를 통해 생성 하이브 표는 하이브에서 액세스 할 수 없습니다.

df.write.format("orc").mode("overwrite").saveAsTable("db.table")

오류가 하이브에서 액세스하는 동안 :

표 하이브에서 성공적으로 만들어 다시 불꽃이 테이블을 읽을 수지고. 표 메타 데이터 디렉토리 (HDFS)에 테이블 (하이브)에 접근 할 수 있고 데이터 파일입니다.

하이브 테이블의 TBLPROPERTIES은 다음과 같습니다 :

  'bucketing_version'='2',                         
  'spark.sql.create.version'='2.3.1.3.0.0.0-1634', 
  'spark.sql.sources.provider'='orc',              
  'spark.sql.sources.schema.numParts'='1',

나는 또한 다른 해결 방법으로 테이블을 생성하지만 테이블을 만드는 동안 오류가 발생했습니다 :

df.write.mode("overwrite").saveAsTable("db.table")

또는

df.createOrReplaceTempView("dfTable")
spark.sql("CREATE TABLE db.table AS SELECT * FROM dfTable")

오류 :

스택 버전 세부 정보 :

Spark2.3

1. HAF

호튼 웍스 데이터 플랫폼 HDP3.0

해결법

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

    1.HDP 3.0에서 아파치 하이브와 아파치 스파크 카탈로그는 분리, 그들은 자신의 카탈로그를 사용; 즉, 그들은 상호 배타적 - 아파치 하이브 카탈로그 만 오직 아파치 스파크 기존 API에 액세스 할 수 있습니다 아파치 하이브하거나 도서관, 아파치 스파크 카탈로그에 액세스 할 수 있습니다. 즉, 아파치 하이브 테이블 ACID 테이블 또는 Apache 레인저와 같은 일부 기능은 아파치 스파크에서이 라이브러리를 통해에서만 사용할 수 있습니다. 하이브에서 그 테이블은 직접 아파치 스파크 API를 자체 내에서 액세스 할 수 없습니다합니다.

    HDP 3.0에서 아파치 하이브와 아파치 스파크 카탈로그는 분리, 그들은 자신의 카탈로그를 사용; 즉, 그들은 상호 배타적 - 아파치 하이브 카탈로그 만 오직 아파치 스파크 기존 API에 액세스 할 수 있습니다 아파치 하이브하거나 도서관, 아파치 스파크 카탈로그에 액세스 할 수 있습니다. 즉, 아파치 하이브 테이블 ACID 테이블 또는 Apache 레인저와 같은 일부 기능은 아파치 스파크에서이 라이브러리를 통해에서만 사용할 수 있습니다. 하이브에서 그 테이블은 직접 아파치 스파크 API를 자체 내에서 액세스 할 수 없습니다합니다.

    아파치 스파크와 아파치 하이브 통합 - 하이브 창고 커넥터

  2. ==============================

    2.나는 다음과 같은 속성을 설정 한 후 동일한 문제에 직면, 그것은 잘 작동합니다.

    나는 다음과 같은 속성을 설정 한 후 동일한 문제에 직면, 그것은 잘 작동합니다.

    set hive.mapred.mode=nonstrict;
    set hive.optimize.ppd=true;
    set hive.optimize.index.filter=true;
    set hive.tez.bucket.pruning=true;
    set hive.explain.user=false; 
    set hive.fetch.task.conversion=none;
    set hive.support.concurrency=true;
    set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
    
  3. from https://stackoverflow.com/questions/52761391/table-loaded-through-spark-not-accessible-in-hive by cc-by-sa and MIT license