2017-11-07 12 views
0

데이터 프레임을 마루 파일에 저장하고 있습니다. 생성 된 스키마는 다음과 같습니다.쪽매 파일 상단에 하이브 테이블 만들기 실패 - 어디서 잘못 가고 있습니까?

org.apache.spark.sql.parquet.row.metadata{ 
"type":"struct", 
"fields":[ 
    { 
    "name":"DCN", 
    "type":"string", 
    "nullable":true, 
    "metadata":{} 
    }, 
    { 
    "name":"EDW_id", 
    "type":"string", 
    "nullable":true, 
    "metadata":{} 
    }, 
    { 
    "name":"recievedTimestamp", 
    "type":"string", 
    "nullable":true, 
    "metadata":{} 
    }, 
    { 
    "name":"recievedDate", 
    "type":"date", 
    "nullable":true, 
    "metadata":{} 
    }, 
    { 
    "name":"rule", 
    "type":"string", 
    "nullable":true, 
    "metadata":{} 
    } 
]} 

데이터 프레임이 스파크 프로그램에서 생성됩니다. spark-submit을 통해이를 실행하고 데이터 프레임을 표시하면 수백 개의 레코드가 있음을 알 수 있습니다. 그래서 같은 마루하기 위해 DF 절약 해요 :

df.write.format("parquet").mode(SaveMode.Overwrite).save('/home/my/location') 

그래서 같은 하이브에 외부 테이블을 생성 :

CREATE EXTERNAL TABLE schemaname.tablename (
    DCN STRING, 
    EDW_ID STRING, 
    RECIEVEDTIMESTAMP STRING, 
    RECIEVEDDATE STRING, 
    RULE STRING) 
STORED AS PARQUET 
LOCATION '/home/my/location'; 

테이블이 성공적으로 생성되고, 그러나 그것은 어떤으로 채워되지 않는 데이터 - 쿼리 할 때 0 레코드가 반환됩니다. 아무도 내가 잘못하고있는 것을 발견 할 수 있습니까? 이것은 하이브 1.1과 스파크 1.6을 사용하고 있습니다.

답변

0

하이브는 쪽매 파일을 처리하는 데 필요한 jar 파일입니다.

하이브를 site.xml에 항아리 경로 2.include 1.First 다운로드 마루 - 하이브 - 번들-1.5.0.jar

.

<property> 
    <name>hive.jar.directory</name> 
    <value>/home/hduser/hive/lib/parquet-hive-bundle-1.5.0.jar</value> 
</property>