如何从.csv文件创建一个Hive表,该文件有一列包含以分号分隔的字段;

时间:2014-12-23 08:37:33

标签: mysql csv hadoop hive beeswax

我有一个.csv文件,其格式为有一个(第一个)列/单元格,我的hive表中需要的五个字段用分号分隔;像这样:

ISBN;"Title";"Author";"Year";"Publisher"
0002005018;"Clara Callan";"Richard Bruce Wright";"2001";"HarperFlamingo Canada"
0399135782;"The Kitchen God's Wife";"Amy Tan";"1991";"Putnam Pub Group"

etc. 
etc.
...

我可以使用Hive查询来分割数据;并将其存储在我使用相同的列名顺序创建的表中?

喜欢regexp_extract?或者我需要使用serde吗?

我是Hadoop / hive / beeswax的新手,正在使用Cloudera-quickstart vm 5.2

1 个答案:

答案 0 :(得分:1)

听起来你想做这样的事情:

CREATE TABLE books (ISBN STRING, Title STRING, Author STRING, Year STRING, Publisher STRING)
  ROW FORMAT DELIMITED FIELDS TERMINATED BY "\;";
LOAD DATA INPATH '/path/to/your/datafile' INTO TABLE books;