Hive 如何在配置单元中获取一个文件

Hive 如何在配置单元中获取一个文件,hive,Hive,我试过蜂箱程序, 从中生成单词频率等级 句子, 我不想输出多个文件,但 一个文件 我在这个网站上搜索了类似的问题, 我发现mapred.reduce.tasks=1, 但它没有生成一个文件,而是生成了50个文件 我尝试的过程有50个输入文件和 它们都是gzip文件 如何获得一个合并文件? 50个输入文件太大了,我想 原因可能是某种限制 在您的工作中使用带有某些字段的Order By子句 因此,配置单元将强制只运行一个reducer,结果是您将在HDFS中创建一个文件 hive> Inser

我试过蜂箱程序, 从中生成单词频率等级 句子, 我不想输出多个文件,但 一个文件

我在这个网站上搜索了类似的问题, 我发现mapred.reduce.tasks=1, 但它没有生成一个文件,而是生成了50个文件

我尝试的过程有50个输入文件和 它们都是gzip文件

如何获得一个合并文件? 50个输入文件太大了,我想
原因可能是某种限制

在您的工作中使用带有某些字段的Order By子句

因此,配置单元将强制只运行一个reducer,结果是您将在HDFS中创建一个文件

hive> Insert into default.target 
         Select * from default.source
      order by id;

有关按条款订购的更多详细信息,请参阅和链接。

谢谢您的友好回复, 你真的救了我。 我试着点餐, 但这需要很多时间, 我在等它。 我所要做的就是得到一个文件 将输出文件转换为 下一步,, 我还将尝试根据建议简单地对reducer输出中的所有文件进行cat,
如果我愿意这样做,我担心的是文件是唯一的,文件之间没有任何相同的字,以及它是否是由多个gzip文件组成的普通gzip文件。

mapred.reduce.tasks=1
可能因为没有reduce作业而无法工作。您可以通过向您的配置单元查询添加例如
排序依据
来减少作业生成一个文件的原因是什么?因为您的程序是完全分布式的,所以每个容器独立创建自己的文件。单减速器将破坏并行性。稍后,您还可以并行阅读它们。配置单元表还可以读取其所在位置的许多文件。您可以使用cat命令连接它们,最好不要使用zip在“合并小文件”(其中“小文件”是可配置的)下使此配置单元属性更容易检查