ich in meiner eigenen Datenbank eine externe Tabelle erschaffe:Hive: Erstellen einer externen Tabelle: Show Partitionen tut nichts
create external table test1 (
event_uid string,
event_type_id int,
event_category_id int,
event_date string,
log_date string,
server string,
server_type string,
process_id int,
device_id string,
account_id string,
ip_address string,
category_id string,
content_id string,
entitlement_id string,
product_id string,
sku string,
title_id string,
service_id string,
order_id bigint,
transaction_id bigint,
company_code string,
product_code string,
key_value_pairs map<string,string>,
process_run_id string)
partitioned by (A string, B string, C string)
location '/data/a1/pnt/lte/formatted/evt'
Wenn ich SHOW PARTITIONS TEST
versuchen, ich als Ausgang nur OK bekommen. Allerdings gibt es eine Tabelle mit der gleichen DDL und dem gleichen Speicherort in einer anderen Datenbank, die Ergebnisse gibt, wenn ich tun SHOW PARITITIONS TEST
. Ich habe auch versucht MSCK REPAIR TABLE TEST
, die Partitionen anzeigt.
Bitte vorschlagen
Für externe Tabelle müssen Sie die Partition separat hinzufügen. Überprüfen Sie meine Antwort hier: http://stackoverflow.com/questions/25759568/external-table-does-not-return-the-data-in-its-folder/25760626#25760626 –
Danke, ich bin durch den Link aber gegangen Mein Zweifel ist: Ich glaube nicht, dass ich die Daten neu laden muss, da der Speicherort 'data/a1/pnt/lte/formatiert/evt' bereits die "Daten" hat und die Dateien tatsächlich den Strukturdaten folgen/a1/pnt/lte/formatiert/evt/A =/B = /C = , muss ich noch Partitionen separat hinzufügen? Was passiert dann mit den Partitionen, die ich zum Zeitpunkt der Tabellenerstellung erstellt habe? –
Vam
BTW, danke nochmal. Ich habe versucht, nur Daten zu laden und es funktionierte. Aber ich habe immer noch zwei Zweifel 1) nach externen Tabellenerstellungs-Skript, wenn wir LOCATION angeben, müssen wir Daten nicht erneut laden. Warum werde ich in meinem Fall aufgefordert, Daten zu laden? Liegt es an Partitionen? Bitte schlagen Sie 2) Wenn ich dem zweiten Ansatz in dem von Ihnen referenzierten Thread folgte, brauche ich die Tabelle nicht zu ändern, um die Partition hinzuzufügen. und selbst wenn ich versuchte, es hinzuzufügen, erhalte ich diesen Fehler: FAILED: Execution Error, Rückgabecode 1 von org.apache.hadoop.hive.ql.exec.DDLTask. MetaException (Nachricht: java.lang.NullPointerException) – Vam