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

HIVE - "skip.footer.line.count" doesn't work in Impala

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

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

我在这个数据集之上构建了一个外部配置单元 table。下面是我的配置单元 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 时;我从外部 table 得到了预期的确切行数。但是当我 运行 在 IMPALA 中执行完全相同的查询时,我收到了另外一行,基本上是页脚 属性.

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

Feed 中的示例数据:

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

运行 select 命令在 HIVE 中使用上述 DDL [预期输出] 时的输出:

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

使用上述DDL在IMPALA中执行运行select命令时的输出:[问题]

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

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

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

Impala不识别skip.footer.line.count,所以实际上被忽略了。

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