我有78GB大小的hdfs文件我需要在上面创建一个impala外部表来对可用数据执行一些分组和聚合文件包含标题时出现问题。问题是,在读取文件时,是否有任何方法可以跳过文件头并对其余数据进行查询。虽然我有办法解决这个问题,将文件复制到本地,然后删除头文件,然后将更新后的文件再次复制到hdfs,但这是不可行的,因为文件太大了如果有人知道。。。如有任何建议,我们将不胜感激。。。。提前谢谢
nmpmafwu1#
一个简单的方法是通过pig运行hdfs数据,过滤掉头文件并生成一个新的hdfs数据集,这样impala就可以清晰地读取它。更神秘的方法取决于hdfs数据的格式。例如,如果头和数据行都是制表符分隔的,那么您可以使用包含所有字符串字段的模式读取所有内容,然后在进行聚合之前过滤或划分头。
nuypyhwy2#
更新或删除行操作在hive/impala中不可用。所以你应该模拟删除将数据文件加载到临时hive/impala表中使用insert into或create table as on temp table创建require表
2条答案
按热度按时间nmpmafwu1#
一个简单的方法是通过pig运行hdfs数据,过滤掉头文件并生成一个新的hdfs数据集,这样impala就可以清晰地读取它。
更神秘的方法取决于hdfs数据的格式。例如,如果头和数据行都是制表符分隔的,那么您可以使用包含所有字符串字段的模式读取所有内容,然后在进行聚合之前过滤或划分头。
nuypyhwy2#
更新或删除行操作在hive/impala中不可用。所以你应该模拟删除
将数据文件加载到临时hive/impala表中
使用insert into或create table as on temp table创建require表