1
我一直在使用Sqoop
在Postgresql
表和Hive
之间移动数据。但显然Sqoop
不支持Postgresql
数组类型。将postgresql数组导入配置单元
我一直在使用Sqoop
在Postgresql
表和Hive
之间移动数据。但显然Sqoop
不支持Postgresql
数组类型。将postgresql数组导入配置单元
Postgresql有一个叫做array_to_string
的函数。你可以利用它来将你的数组转换成一个字符串。
为了说明,这里是在postgresql
表:
=# select * from albums;
id | album_id | names
-----------+-------+-----
123 | {1,2,3,4} | test
(1 row)
=#
正如所看到的album_id
具有阵列型,更具体地整数数组。
sqoop import --connect jdbc:postgresql://localhost:5432/mydb \
--query "select id, array_to_string(album_id,',','*'), names \
from albums where \$CONDITIONS" \
--split-by id \
--target-dir albums
之后,你可以创建创建外部蜂巢表具有以下参数:
collection.delim $
field.delim ,
请提供
现在,从我的数据库称为
mydb
我用下面的命令导入此例。我正在使用array_to_string(ARRAY [album_id],',')在Hive表中显示空值。请帮助我。 – user2707767@ user2707767更新了答案。 – naimdjon