如何在impala外部表中跳过文件头?

时间:2014-02-21 12:58:45

标签: hadoop hdfs cloudera impala external-tables

我有75 GB大小的HDFS文件

我需要在其上创建一个Impala外部表,以对可用数据执行某些分组和聚合

问题 该文件包含标题。

问题 有没有办法在读取文件时从文件中跳过标题并查询其余数据。

虽然我有办法通过将文件复制到本地来解决问题,然后删除标题,然后再次将更新的文件复制到HDFS,但由于文件大小太大,这是不可行的

请建议是否有人有任何想法......

任何建议都将不胜感激....

提前致谢

2 个答案:

答案 0 :(得分:1)

Hive / Impala中没有UPDATE或DELETE行操作。所以你应该将DELETE模拟为

  • 将数据文件加载到临时Hive / Impala表
  • 在临时表上使用INSERT INTO或CREATE TABLE AS来创建require table

答案 1 :(得分:1)

一种简单的方法是通过Pig运行HDFS数据来过滤掉标题并生成一个新的HDFS数据集,以便Impala可以干净地读取它。

更神秘的方法取决于HDFS数据的格式。例如,如果标题和数据行都是制表符分隔的,那么您可以使用包含所有STRING字段的模式读取所有内容,然后在进行聚合之前过滤或分区标题。