2016-10-14 43 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