蜂巢中的横向视图爆炸功能

LATERAL VIEW explode funtion in hive

我正在尝试将数据从 excel 导出到配置单元 table,这样做时,我有一列 'ABC',其值类似于“1,2,3” . 我使用了横向视图分解功能,但它对我的数据没有任何作用。

以下是我的代码片段: 创建 TABLE table_name ( 标识字符串, 品牌串, data_name 字符串, 名称字符串, 地址字符串, 国家字符串, 标志字符串, sample_list数组) 由 '\t'
终止的行格式分隔字段 存储为文本文件
;
加载数据本地输入路径 'location' 进入 TABLE table_name;

输出样本:

id brand data_name name address country flag sample_list

19 1 ABC SQL ABC 玉米淀粉 IN 1 ["[1,2,3]"]

那我做: select * 来自 franchise_unsupress 横向视图 explode(SEslist) SEslist as final_SE;

输出样本:

id brand data_name name address country flag sample_list

19 1 ABC SQL ABC 玉米淀粉 1 [1,2,3]

我也试过了: select * 来自 franchise_unsupress 侧视图 explode(split(SEslist,',')) SEslist AS final_SE ; 但出现错误:

失败:ClassCastException org.apache.hadoop.hive.serde2.objectinspector.StandardListObjectInspector 无法转换为 org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector

然而,我需要的是:

id brand data_name name address country flag sample_list

19 1 ABC SQL ABC 玉米淀粉 IN 1 1 19 1 ABC SQL ABC 玉米淀粉 IN 1 2 19 1 ABC SQL ABC 玉米淀粉 IN 1 3

任何帮助将不胜感激!谢谢

问题是数组以错误的方式被识别并加载为单个元素数组["[1,2,3]"]。它应该是[1,2,3]["1","2","3"](如果是array<string>

创建 table 时,为集合指定分隔符:

FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY ','

我想提供我的答案。 问题在于所提供的输入。我的输入 txt 文件在输入值周围有 []。它们必须被移除并且它起作用了。