使用sqoop和hive将分隔列值获取到不同的行中

92dk7w1h  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(259)

我的一个oracle db表中有以下数据-

ZONE_ID,ZONE_NAME,OPERATORS,GEOGRAPHIES,PRODUCT_ID
3285,'EUROPE',null,'3,6,14,21,32',2
3293,'USA AND MEXICO',null,'133,215',3
3061,'Europe','11,238,352,398',null,4
3221,'USA','1079',null,5

在运算符和地理位置列中,数据以逗号分隔。对于每一行,数据要么在operators列中,要么在geographies列中。
我需要在单独的行中获取此分隔数据,如下所示:

ZONE_ID,ZONE_NAME,OPERATORS,GEOGRAPHIES,PRODUCT_ID
3285,'EUROPE',null,3,2
3285,'EUROPE',null,6,2
3285,'EUROPE',null,14,2
3285,'EUROPE',null,21,2
3285,'EUROPE',null,32,2
3293,'USA AND MEXICO',null,133,3
3293,'USA AND MEXICO',null,215,3
3061,'Europe',11,null,4
3061,'Europe',238,null,4
3061,'Europe',352,null,4
3061,'Europe',398,null,4
3221,'USA',1079,null,5

在从oracledb导入sqoop的过程中,这种转换可能吗?否则,我们如何使用sqoop导入这些数据并在hive中进行转换。
请帮忙。

vsmadaxz

vsmadaxz1#

在配置单元中使用以下查询使其正常工作:

select ZONE_ID
,ZONE_NAME
,col1
,col2
,product_id
from table
lateral view explode(OPERATORS) ptable1 as col1
lateral view explode(GEOGRAPHIES) ptable2 as col2
;

相关问题