4

我在 HDFS 上有 78 GB 大小的文件

我需要在它上面创建一个 Impala 外部表来对可用数据执行一些分组和聚合

问题 文件包含标题。

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

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

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

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

提前致谢

4

2 回答 2

1

一种直接的方法是通过 Pig 运行 HDFS 数据以过滤出标头并生成一个新的 HDFS 数据集,该数据集已格式化,以便 Impala 可以干净地读取它。

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

于 2014-03-06T07:00:26.907 回答
1

UPDATE 或 DELETE 行操作在 Hive/Impala 中不可用。所以你应该模拟 DELETE 作为

  • 将数据文件加载到临时 Hive/Impala 表中
  • 在临时表上使用 INSERT INTO 或 CREATE TABLE AS 创建需要表
于 2014-02-27T10:18:15.000 回答