2017-11-07 10 views
0

Ich speichere einen Datenrahmen in Parkett-Dateien. Das erzeugte Schema sieht so aus:Erstellen von Hive-Tabelle oben auf Parkettdateien ist fehlgeschlagen - wo liege ich falsch?

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":{} 
    } 
]} 

Der Datenrahmen wird in einem Funkenprogramm erzeugt; Wenn ich es über Spark-Submit laufen lasse und den Datenrahmen anzeige, kann ich sehen, dass es mehrere hundert Datensätze gibt. Ich rette die df wie so Parkett:

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

Und eine externe Tabelle wie so in Bienenstock zu schaffen:

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

Die Tabelle erfolgreich erstellt wird, aber es wird nicht mit jedem bevölkert wird Daten - wenn ich sie abfrage, werden 0 Datensätze zurückgegeben. Kann jemand sehen, was ich falsch mache? Dies verwendet Hive 1.1 und Spark 1.6.

Antwort

0

Hive benötigte JAR-Datei für die Verarbeitung der Parkettdatei.

1.First herunterladen Parkett-Nest-Bündel-1.5.0.jar

2.Aufnahme der jar Weg in hive-site.xml.

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