将数据从普通表复制到 orc 表的空数组转换为非空

问题描述

hive 中有一个普通的表,例如pageads ,记录如下

+-----------------+--------------------+
| pageads.pageid  | pageads.adid_list  |
+-----------------+--------------------+
| front_page      | ["1","2","3"]      |
| contact_page    | ["3","4","5"]      |
| detail_page     | []                 |
+-----------------+--------------------+

现在创建另一个相同的表,只是存储为 orc

create table pageAds_orc(pageid STRING,adid_list Array<string>) stored as orc TBLPROPERTIES ('transactional'='true');

然后将数据从 pageads 复制到 pageAds_orc

insert into pageAds_orc select * from pageAds;

但空数组转换为非空数组,[] ==> [""]

+---------------------+------------------------+
| pageads_ocr.pageid  | pageads_ocr.adid_list  |
+---------------------+------------------------+
| front_page          | ["1","3"]          |
| contact_page        | ["3","5"]          |
| detail_page         | [""]                   |
+---------------------+------------------------+

为什么会这样?怎么让它原样?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)