如何为特殊格式化数据创建配置单元表

yiytaume  于 2021-06-02  发布在  Hadoop
关注(0)|答案(3)|浏览(314)

我有要加载到配置单元表中的文本文件。
数据格式如下

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

我想在配置单元中为这种数据创建一个表。
你能建议如何为这个创建表吗?
这是我尝试过的,但得到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' ;
68bkxrlz

68bkxrlz1#

这对我有用
行格式serde'org.apache.hadoop.hive.contrib.serde2.multidivideserde'带有serdeproperty(“field.delim”=“| ^ |”)tblproperty

w51jfk4q

w51jfk4q2#

配置单元不支持多个字符作为分隔符,
你可以在这里找到解决办法,
解决方案
关于数据类型,除了第一列id之外,您所做的都是正确的。存在的值大于int的范围。它可以是bigint。

oaxa6hgo

oaxa6hgo3#

您的字段似乎以 '|^|' 你的电话被 '|!|\n'

相关问题