HIVE - “skip.footer.line.count”在 Impala 中不起作用

Posted

技术标签:

【中文标题】HIVE - “skip.footer.line.count”在 Impala 中不起作用【英文标题】:HIVE - "skip.footer.line.count" doesn't work in Impala 【发布时间】:2018-12-03 15:47:59 【问题描述】:

我正在将平面文件传送到 hdfs。文件的一般结构如下:

<header - 2 rows>
 <data>
<footer - 1 row>

我在此数据集之上构建了一个外部配置单元表。以下是我的配置单元 ddl:

create external table ext_test
(
  id string,
  name string, 
  age string
) row format DELIMITED FIELDS TERMINATED BY ','
  STORED AS TEXTFILE
  LOCATION '<hdfs file location>'
  TBLPROPERTIES ('skip.footer.line.count'='1', 'skip.header.line.count'='2')

当我在 HIVE 中查询 select * from ext_test 时;我从外部表中获得了预期的确切行数。但是当我在 IMPALA 中运行完全相同的查询时,我会收到一个额外的行,它基本上是页脚属性。

例如:下面的例子将清除场景:

Feed 中的示例数据:

Header,Sample-03122018,
ID,NAME,AGE
1,R,10
2,RR,11
3,RRR,12
Footer,End of Report,

当我使用上述 DDL 在 HIVE 中运行选择命令时的输出 [预期输出]

1,R,10
2,RR,11
3,RRR,12

当我使用上述 DDL 在 IMPALA 中运行选择命令时的输出:[Issue]

1,R,10
2,RR,11
3,RRR,12
Footer,End of Report,Null

你遇到过类似的问题吗?如果是,请告诉我合适的解决方案。

【问题讨论】:

【参考方案1】:

此功能尚未在 Impala 中实现,请参阅此 Jira IMPALA-7196。

Impala 无法识别 skip.footer.line.count,因此它实际上被忽略了。

解决方法是使用过滤器WHERE ID &lt;&gt; 'Footer'进行查询,或者在将文件加载到表目录之前剪切文件页脚。

【讨论】:

以上是关于HIVE - “skip.footer.line.count”在 Impala 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Hive三Hive理论

大数据技术之_08_Hive学习_01_Hive入门+Hive安装配置和使用+Hive数据类型

Hive基础02安装Hive

hive&hue优化

Hive入门

Hive入门