我试图将excel中的数据导出到一个蜂窝表中,同时,我有一个列'ABC‘,它的值类似于'1,2,3’。我使用了横向视图爆炸功能,但它对我的数据没有任何作用。
下面是我的代码片段:创建表table_name ( id字符串、品牌字符串、data_name字符串、名称字符串、地址字符串、国家字符串、标志字符串、sample_list数组)行格式分隔字段,以'\t‘结尾
存储为TEXTFILE
;
将数据本地INPATH“位置”加载到表table_name中;
输出示例:
id品牌data_name名称地址国旗sample_list
19 1 ABC SQL ABC玉米淀粉1 ["1,2,3"]
然后我做:选择*从franchise_unsupress横向视野爆炸( SEslist )SEslist作为final_SE;
输出示例:
id品牌data_name名称地址国旗sample_list
19 1 ABC SQL ABC玉米淀粉1 1,2,3
I也尝试过: select *从franchise_unsupress横向视图爆炸(split( SEslist,',‘)SEslist作为final_SE;,但得到了一个错误:
失败:无法将org.apache.hadoop.hive.serde2.objectinspector.StandardListObjectInspector转换为org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector
然而,我需要的是::
id品牌data_name名称地址国旗sample_list
19 1 ABC SQL ABC玉米淀粉1 1 19 1 ABC SQL ABC玉米淀粉1 2 19 1 ABC SQL ABC玉米淀粉1 3
任何帮助都将不胜感激!谢谢
发布于 2021-11-29 15:41:16
问题是数组是以错误的方式识别的,并且加载为单个元素数组["[1,2,3]"]。应该是[1,2,3]或["1","2","3"] (如果是array<string>)
在创建表时,指定集合的分隔符:
FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY ','发布于 2021-11-29 15:59:14
我想提供我的答案。问题在于所提供的投入。我的输入txt文件在输入值周围有[]。他们必须被移走,而且起作用了。
https://stackoverflow.com/questions/70157031
复制相似问题