当前位置: 首页 > 面试题库 >

跳过Map中.csv的第一行,减少Java

诸福
2023-03-14
问题内容

由于mapper函数在每一行上运行,我可以知道如何跳过第一行。对于某些文件,它包含我想忽略的列标题


问题答案:

在读取文件的映射器中,数据作为键值对读取。关键是下一行开始处的字节偏移量。对于第1行,它始终为零。所以在mapper函数中执行以下操作

    @Override
    public void map(LongWritable key, Text value, Context context) throws IOException {
        try {
            if (key.get() == 0 && value.toString().contains("header") /*Some condition satisfying it is header*/)
                return;
            else {
                // For rest of data it goes here
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


 类似资料:
  • 问题内容: 这是我目前正在使用的行 要跳过包含标题的csv的第一行。我不想使用任何分隔符,除了默认的一个逗号(,)已在默认构造函数中提供。在参数化构造函数中,可以选择跳过否。行,但如何处理构造函数的第二和第三参数。 - 谢谢 问题答案: CSVReader类的此构造方法在读取文件时将跳过csv的第一行。

  • 在 Mule 4 中,我正在读取一个大型 csv 文件进行转换,需要将内容写入数据库表。csv 文件没有标头。当我默认运行集成时,第一行被跳过,就好像默认值被预先确定为标题一样。 我看了一下应用程序类型。xml,看起来头被设置为false,如下所示 任何建议都将不胜感激。谢谢

  • 问题内容: 我正在使用以下内容读取文件的各行, 现在,我想跳过读取文件的第一行,并且不想使用计数器行来保持行数。 这该怎么做? 问题答案: 你可以试试这个

  • 问题内容: 编辑:感谢你们的快速反应-我最终切换到mysql_fetch_assoc()并使用do … while,我很高兴。 我正在使用相同的过程来创建和填充表-一切正常,除了 在每个表中跳过第一行 。由于我似乎无法查明问题,可以用另一双眼睛。提前致谢。 问题答案: 您正在调用mysql_fetch_array两次…循环前一次,循环时一次。 如果您需要种子行来构建标题行,则最好在此处使用do .

  • 问题内容: 我见过其他有此问题的人,但我见过的解决方案没有帮助我,或者我不知道如何使用它们:P 我的代码正在跳过数据库的第一行,但我不明白为什么。 问题答案: 删除行: 该循环将抢在第一次循环中的第一行。 结果代码:

  • 我使用下面的读取文件的行, 现在,我想跳过读取文件的第一行,我不想使用计数器行来记录行数。 这要怎么做?