Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 如何跳过impala外部表中的文件头?_Hadoop_Hdfs_Cloudera_Impala_External Tables - Fatal编程技术网

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

Hadoop 如何跳过impala外部表中的文件头?,hadoop,hdfs,cloudera,impala,external-tables,Hadoop,Hdfs,Cloudera,Impala,External Tables,我有78 GB大小的HDFS文件 我需要在上面创建一个Impala外部表,以便对可用数据执行一些分组和聚合 问题 该文件包含标题 问题 是否有任何方法可以在读取文件时跳过文件头并查询其余数据 虽然我有办法通过将文件复制到本地,然后删除标题,然后将更新后的文件再次复制到HDFS来解决问题,但这是不可行的,因为文件大小太大 如果有人有任何想法,请建议 如有任何建议,将不胜感激 提前感谢更新或删除行操作在Hive/Impala中不可用。因此,您应该将DELETE模拟为 将数据文件加载到临时配置单元/

我有78 GB大小的HDFS文件

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

问题 该文件包含标题

问题 是否有任何方法可以在读取文件时跳过文件头并查询其余数据

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

如果有人有任何想法,请建议

如有任何建议,将不胜感激


提前感谢

更新或删除行操作在Hive/Impala中不可用。因此,您应该将DELETE模拟为

  • 将数据文件加载到临时配置单元/Impala表中
  • 使用INSERT INTO或CREATE TABLE AS on temp TABLE创建所需表格

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


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

是的,我有此选项,但这将占用我现在所需的2倍空间。。。。。还有别的办法吗?但是智能解决方案有一个,谢谢:)不,为什么是2x?从临时表中复制数据后删除临时表。好的,这需要一些pig知识,但我没有:(无论如何,我会尝试,如果你有相关链接,请用它更新你的答案。