为啥数组值出现在 impala 中而不是 hive 中?

Posted

技术标签:

【中文标题】为啥数组值出现在 impala 中而不是 hive 中?【英文标题】:Why array values appear in impala but not hive?为什么数组值出现在 impala 中而不是 hive 中? 【发布时间】:2018-03-06 14:47:49 【问题描述】:

我的表 (HIVE) 中有一个定义为数组的列。

create external table rule
id string,
names array<string>
ROW FORMAT DELIMITED
COLLECTION ITEMS TERMINATED BY '|'stored as parquet
location 'hdfs://folder'

名称中的值示例:Joe|Jimmy

当我在 Impala 中查询表时,我检索了数据,但在配置单元中我只有 NULL。为什么会有这种行为?我什至会理解相反的情况。

【问题讨论】:

您有id 列和names 列。它们之间的分隔符是什么? parquet文件是否需要指定分隔符?无论如何,分隔符是逗号 (,) 【参考方案1】:

我找到了答案。数据是从 Spark 作业中以字符串而不是数组形式写入的。

【讨论】:

以上是关于为啥数组值出现在 impala 中而不是 hive 中?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 impala 不显示 Hive 创建的所有表

Hive 和 Impala 集成是不是可行?

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

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

Impala 或 Hive 在其他 SQL 语法中是不是有类似 IN 子句的东西?

Hive 和 Impala 之间的正则表达式的语法是不是不同?