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.