2017-01-19 7 views
0

Ich versuche, eine externe Hive-Tabelle aus einem Verzeichnis von Dateien mit csvserde, die durch den hexadezimalen Wert 1F begrenzt ist, zu erstellen. Die csvserde funktioniert gut bei regulären Kommas. Ich bin mir nicht sicher, wie ich den hexadezimalen Wert im Seperator ausdrücken soll.Delimit Hive CsvSerde Tabelle auf Hexadezimal

CREATE EXTERNAL TABLE example_table(
id bigint, 
property_id string, 
application_date date, 
system_time timestamp, 
system_end timestamp 
) 
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' 
WITH SERDEPROPERTIES(
"separatorChar" = "\1F" 
) 
STORED AS 
TEXTFILE 
LOCATION '/user/nameofdirectory' 
+0

Können Sie versuchen, das '\ u001f'? – franklinsijo

+0

Dies fügt alles in die erste Zeile als ein Element in der ersten Spaltenüberschrift ein. – Defcon

Antwort

0

Der seperatorChar sollte im Oktalwert ausgedrückt werden.

In diesem Fall war das Trennzeichen 1f in Hexadezimal (31 Dezimaläquivalent).

In Oktal ist es 037. So ist die seperatorChar "\ 037" sein sollte

Verwandte Themen