如何在 impala 或 hive 上读取复杂类型数组<string>?

Posted

技术标签:

【中文标题】如何在 impala 或 hive 上读取复杂类型数组<string>?【英文标题】:how to read a complex type array<string> on impala or hive? 【发布时间】:2018-02-23 13:11:59 【问题描述】:

我尝试在 hive 上读取复杂类型

dog.owners (array<string>)

使用以下查询

select dog_id, concat_ws(',',collect_set(owners)) as owners 
from dog 
group by dog_id

但我收到以下错误

Argument 2 of function CONCAT_WS must be "string or array&lt;string&gt;", but "array&lt;array&lt;string&gt;&gt;" was found.

看起来数据类型不匹配。我尝试将列所有者创建为array&lt;array&lt;string&gt;&gt;,但我仍然遇到相同的错误。 有没有办法在 hive 或 impala 上阅读该专栏?

【问题讨论】:

你想完成什么?样本数据和预期输出会有所帮助。 你不需要collect_set 【参考方案1】:
select dog_id, do.* from dog, dog.owners as do

【讨论】:

以上是关于如何在 impala 或 hive 上读取复杂类型数组<string>?的主要内容,如果未能解决你的问题,请参考以下文章

Parquet 支持的 Hive 表:Impala 中不可查询的数组列

在 Hive 或 Impala 中从 int 转换为时间戳

在cm安装的大数据管理平台中集成impala之后读取hive表中的数据的设置(hue当中执行impala的数据查询)

如何使用 impyla 连接到 impala 或使用 pyhive 连接到 hive?

hive 或 impala 中的计算表统计信息如何加速 Spark SQL 中的查询?

从 Hive 或 Webhdfs 运行 Impala Refresh