【问题标题】:How to load a complex datastructure like struct ,map in HIVE table如何在 HIVE 表中加载复杂的数据结构,如结构、映射
【发布时间】:2014-05-03 08:19:42
【问题描述】:

我正在尝试将以下数据插入配置单元表:

John Doe^A100000.0^AMary Smith^BTodd Jones^AFederal Taxes^C.2^BState 税收^C.05^BInsurance^C.1^A1 Michigan Ave.^BChicago^BIL^B60600

玛丽·史密斯^A80000.0^A比尔·金^A联邦税^C.2^B州税^C. 05^BInsurance^C.1^A100 Ontario St.^BChicago^BIL^B60601

托德·琼斯^A70000.0^A联邦税^C.15^B州税^C.03^B保险^C. 1^A200 Chicago Ave.^博克公园^BIL^B60700

比尔金^A60000.0^A联邦税^C.15^B州税^C.03^B保险^C. 1^A300 无名博士^BObscuria^BIL^B60100

这是我正在使用的查询:

创建表员工(

名称字符串,

工资浮动,

下属阵列,

扣除MAP,

地址结构 ) 行格式分隔

由“\001”终止的字段

由“\002”终止的集合项目

由“\003”终止的映射键

以“\n”结尾的行

存储为文本文件

加载本地输入路径'/home/cloudera/a.txt';

但是所有细节都存储在一列中。谁能解释一下原因。

John Doe^A100000.0^AMary Smith^BTodd Jones^AFederal Taxes^C.2^BState NULL null null null 税收^C.05^BInsurance^C.1^A1 Michigan Ave.^BChicago^BIL^B60600 NULL null null null 玛丽·史密斯^A80000.0^A比尔·金^A联邦税^C.2^B州税^C.空 空 空 空 05^BInsurance^C.1^A100 Ontario St.^BChicago^BIL^B60601 NULL null null null 托德·琼斯^A70000.0^A联邦税^C.15^B州税^C.03^B保险^C.空 空 空 空 1^A200 Chicago Ave.^BOak Park^BIL^B60700 NULL null null null 比尔金^A60000.0^A联邦税^C.15^B州税^C.03^B保险^C.空 空 空 空 1^A300 无名博士^BObscuria^BIL^B60100 NULL null null null

【问题讨论】:

    标签: hadoop hive hiveql


    【解决方案1】:

    这可能是输入数据文件的问题,您是否手动创建了此文件,您需要在文件中正确插入分隔字符,我建议您可以从图书网站下载示例文本文件(我假设你指的是编程蜂巢书)然后试一试。输入文件在那里可用,我可以加载它......

    【讨论】:

      【解决方案2】:

      遇到同样的问题。

      解决方法是在创建表时,更改默认的 ROW FORMAT DELIMITED, '\001' -> ',' '\002' -> ';' '\003' -> ':'

      然后您可以使用上述字符来准备您的文本文件进行拆分。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-07
        • 1970-01-01
        • 2017-06-11
        • 1970-01-01
        • 1970-01-01
        • 2012-11-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多