将 postgresql 数组导入配置单元
Posted
技术标签:
【中文标题】将 postgresql 数组导入配置单元【英文标题】:Importing postgresql arrays to hive 【发布时间】:2015-11-30 06:35:47 【问题描述】:我一直在使用Sqoop
在Postgresql
表和Hive
之间移动数据。但显然Sqoop
不支持Postgresql
数组类型。
【问题讨论】:
【参考方案1】:Postgresql 有一个名为array_to_string
的函数。您可以利用它将数组转换为字符串。
为了说明,这里是postgresql
中的表格:
=# select * from albums;
id | album_id | names
-----------+-------+-----
123 | 1,2,3,4 | test
(1 row)
=#
如您所见,album_id
具有数组类型,更具体地说是整数数组。
现在,要从名为 mydb
的数据库中导入它,我使用以下命令:
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
之后,您可以使用以下参数创建一个外部 Hive 表:
collection.delim $
field.delim ,
【讨论】:
请提供示例。我正在使用 array_to_string(ARRAY[album_id],',') 在 hive 表中显示空值。请帮助我。以上是关于将 postgresql 数组导入配置单元的主要内容,如果未能解决你的问题,请参考以下文章