如何为特殊格式化数据创建Hive表

时间:2016-10-27 08:59:03

标签: hadoop hive

我有要加载到Hive表中的文本文件。

数据格式如下所示

Id|^|SegmId|^|geographyId|^|Sequence|^|Subtracted|^|FFAction|!|
4295875876|^|3|^|110170|^|1|^|False|^|I|!|
4295876137|^|2|^|110170|^|1|^|False|^|I|!|
4295876137|^|8|^|100219|^|1|^|False|^|I|!|

我想在Hive中为这种数据创建一个表。

您能否建议如何为此创建表格?

这是我尝试过但得到null(也请建议我们列的数据类型):

create table if not exists GeographicSegment 
(
    Id int,
    SegId int,
    geographyId int,
    Sequence int,
    Subtracted String,
    FFAction String
) row format delimited fields terminated by '|!|' LINES TERMINATED BY '\n' ;

3 个答案:

答案 0 :(得分:0)

您的字段似乎已被'|^|'终止,并且您的行已被'|!|\n'

终止

答案 1 :(得分:0)

这对我有用

行格式SERDE' org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe' with SERDEPROPERTIES(" field.delim" =" | ^ |")tblproperties

答案 2 :(得分:0)

Hive不支持多个字符作为分隔符,

你可以在这里找到处理它的方法,

Solution

关于数据类型,除第一列ID外,您所做的是正确的。存在的值大于INT的范围。它可以是BIGINT。