Hive - 在文件的数组中插入值(以逗号和分号分隔)

时间:2016-10-14 17:49:40

标签: arrays hadoop hive

我有一个用分号分隔的列的文件。我想将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>

1 个答案:

答案 0 :(得分: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;