2016-10-14 44 views
0

我有一個文件,分隔列用分號分隔。我想添加一個type列作爲Array<String>。我現在已經是我存放我的價值觀生,就像這樣(的type列文本):配置單元 - 從文件中插入值(逗號和分號分隔)

| age | type | country | 
    24  a   us 
    29  a,b  au   <--------- this line is not OK 
    25  a   uk 

我的文件是這樣的:

age;type1,type2;country 
age;type1;country 
age;type2;country 

如何正確地把在我的表中作爲Array<String>

回答

0

相同的數據將起作用。創建表格:

CREATE TABLE array_data_type(
    age int, 
    type array<string>, 
    contry varchar(100)) 
ROW FORMAT DELIMITED 
    FIELDS TERMINATED BY '\;' 
    COLLECTION ITEMS TERMINATED BY ','; 

加載此表中的相同數據。

如果此數據是在本地文件:

LOAD DATA LOCAL INPATH '<file-path>' INTO TABLE array_data_type; 

或在HDFS文件的情況下:

LOAD DATA INPATH '<hdfs-file-path>' INTO TABLE array_data_type; 
+0

大。但是如果我的國家有逗號,但我不想將它作爲數組存儲呢?會有一個錯誤或什麼?謝謝! – Anthony

+0

@ r3v0lt國家不是數組類型。所以不會有問題。 –

+0

感謝您的回覆。但是,我有以下錯誤:FAILED:ParseException行8:22不匹配的輸入''在錶行格式的字段分隔符中期望StringLiteral接近'BY'。任何提示? – Anthony