当前位置: 首页 > 知识库问答 >
问题:

如何将输出文件名从减速机中的part-00000更改为inputfile名称

华景同
2023-03-14

目前,我能够在mapper中实现从part-00000到自定义文件名的名称更改。我通过使用输入拆分来实现这一点。我在reducer中尝试了同样的方法来重命名文件,但fileSplit方法不适用于reducer。那么,有没有最好的方法将reducer的输出重命名为inputfile name呢。下面是我如何在mapper中实现的。

@Override
    public void setup(Context con) throws IOException, InterruptedException {
        fileName = ((FileSplit) con.getInputSplit()).getPath().getName();
        fileName = fileName.substring(0,36);
        outputName = new Text(fileName);  

        final Path baseOutputPath = FileOutputFormat.getOutputPath(con);
        final Path outputFilePath = new Path(baseOutputPath, fileName);
        TextOutputFormat<IntWritable, Text> write = new TextOutputFormat<IntWritable, Text>() {
        @Override
        public Path getDefaultWorkFile(TaskAttemptContext context, String extension) throws IOException {
        return outputFilePath;

共有1个答案

董哲
2023-03-14

这是hadoop wiki说的:

You can subclass the OutputFormat.java class and write your own. You can locate and browse the code of TextOutputFormat, MultipleOutputFormat.java, etc. for reference. It might be the case that you only need to do minor changes to any of the existing Output Format classes. To do that you can just subclass that class and override the methods you need to change. 

如果需要使用键和输入文件格式,那么可以创建MultipleOutputFormat的子类来控制输出文件名。

 类似资料:
  • 在我的MapReduce代码中,在reducer端,我实现了,并将inputsplit附加到它。我希望输出文件名作为keyvalue,而不是。如何删除尾随值。下面是我的代码。

  • 问题内容: 通过Spark SQL DataFrame.write()方法生成的输出文件以“ part”基本名称前缀开头。例如 结果是: 我想更改使用Spark SQL DataFrame.write()创建文件时使用的输出文件名前缀。我尝试在Spark上下文的hadoop配置上设置“ mapreduce.output.basename”属性。例如 这不会更改生成文件的输出文件名前缀。 使用Dat

  • 我正在尝试编写HTML输出文件。文件已经编写好,一切都很好,但我想知道是否有方法将字符串与文件名结合起来,检查是否存在,如果存在,然后以某种方式更改该字符串。所以我永远不会覆盖已经存在的文件。 所以在这种情况下,如果outputFile是,让我们说“Jesus”,那么我想做一些事情,如果我运行这个3次,我会得到类似Jesus的东西。html,Jesus2。html,Jesus3。html。不必像那

  • 问题内容: 可以在Django中更改上传文件的文件名吗?我搜索了,但找不到任何答案。 我的要求是,无论何时上传文件,其文件名都应以以下格式更改。 非常感谢你… 问题答案: 你如何上传文件?我以为。 FileField.upload_to的文档说,该字段 也可以是可调用的,例如函数,将被调用以获得上载路径,包括文件名。该可调用对象必须能够接受两个参数,并返回要传递给存储系统的Unix样式的路径(带有

  • 我在文本编辑器中有一个另存为...功能。我想做一个另存为,保存到一个新文件,但是我要保存的永久文件现在应该总是这个新文件。所以当我点击我的另一个按钮,保存,而不是保存到以前的位置,将继续保存到用JFileChooser选择的位置。 我有一个名为currentFile的文件对象,它应该链接到通过“另存为”选择的文件。我目前正在通过在我的按钮操作执行功能中创建一个名为fileName的文件,然后将cu