Ich versuche, die bestehenden Hive externe Tabelle Begrenzer aus Komma ,
-ctrl+A
Zeichen zu ändern, indem Sie Hive ALTER TABLE-AnweisungHive ändern serde Eigenschaften funktioniert nicht
ALTER TABLE table_name SET SERDEPROPERTIES ('field.delim' = '\u0001');
Nach der DDL Ich konnte Änderungen sehen
show create table table_name
Aber wenn ich aus Hive auswählen, sind die Werte alle NULL (zugrunde liegende Dateien in HDFS werden geändert, um Strg + A Trennzeichen zu haben).
Ich habe die Tabelle auch mit msck repariert.
Einzige Möglichkeit, die Daten zu sehen, ist das Löschen und erneute Erstellen der externen Tabelle, kann mir bitte jemand helfen, den Grund zu verstehen.
Tabelle Syntax:
CREATE EXTERNAL TABLE `table_name`( col1, col2, col3) PARTITIONED BY ( `ing_year` int, `ing_month` int, `ing_day` int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 'hdfs://location/'
Was meinen Sie mit "Aber wenn ich aus ** HDFS ** auswähle sind die Werte alle NULL"? Meinst du nicht "Hive" oder "Impala"? – cheseaux
In HIVE ändert Alter Tabelle das Trennzeichen, aber nicht in der Lage, Werte richtig auszuwählen. es gibt null zurück. –
Es würde auch helfen, die Anweisung zu sehen, die Sie verwendet haben, um die Tabelle – cheseaux