为啥数组值出现在 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 中?的主要内容,如果未能解决你的问题,请参考以下文章
Parquet 支持的 Hive 表:Impala 中不可查询的数组列
如何在 impala 或 hive 上读取复杂类型数组<string>?