使用 sqoop 和 hive 将分隔的列值放入不同的行中

Get delimited columns values into different rows using sqoop and hive

我的一个 Oracle 数据库表中有以下数据 -

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

在运算符和地理位置列中,数据以逗号分隔。对于每一行,数据位于运算符列或地理列中。

我需要在单独的行中获取分隔的数据,如下所示:

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

在从 oracle db 导入 sqoop 期间是否可以进行此转换?否则我们如何使用 sqoop 导入这些数据并在 hive 中进行这种转换。

请帮忙。

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

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
;