Es gibt ein leerer HBase Tisch mit zwei Säulenfamilien:definieren Hive externe Tabelle oben auf HBase vorhandenen Tabelle
create 'emp', 'personal_data', 'professional_data'
Jetzt versuche ich es ein Hive externe Tabelle abzubilden, was würden natürlich einige Spalten haben:
CREATE EXTERNAL TABLE emp(id int, city string, name string, occupation string, salary int)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":id,
personal_data:city,
personal_data:name,
professional_data:occupation,
professional_data:salary")
TBLPROPERTIES ("hbase.table.name" = "emp", "hbase.mapred.output.outputtable" = "emp");
Jetzt ist der Fehler, die ich bekomme, ist dies:
FEHLGESCHLAGEN: Ausführungsfehler, Rückgabecode 1 von org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: MetaException (Nachricht: org.apache.hadoop.hive.serde2.SerDeException org.apache.hadoop.hive.hbase.HBaseSerDe: Spalten hat 5 Elemente während hbase.columns.mapping hat 6 Elemente (Zählen des Schlüssels wenn implizit))
Könnten Sie mir bitte helfen? Mache ich etwas falsch?
Aber würde es dann Hive-ID-Spalte Hbase-Schlüssel zuordnen? Oder bekomme ich etwas falsch? Danke für deine Antwort :) – Dennis
Ja, ich habe das Teil der Dokumentation ein paar Mal gelesen und es hat mich sehr verwirrt. Vielen Dank, Cheseaux! Es funktioniert perfekt. Haben Sie einen guten Tag. – Dennis