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

ApacheBeamTextio。用行号读

佟翰林
2023-03-14

是否可以通过从TextIO读取到PCollection中的行访问行号。阅读对于这里的上下文,我正在处理一个CSV文件,需要访问给定行的行号。

如果无法通过文本输入。阅读似乎应该可以使用某种自定义的读取或转换,但我很难确定从何开始。

共有1个答案

纪佐
2023-03-14

您可以使用FileIO手动读取文件,从ReadableFile读取文件时可以确定行号。

一个简单的解决方案如下:

p
    .apply(FileIO.match().filepattern("/file.csv"))
    .apply(FileIO.readMatches())
    .apply(FlatMapElements
            .into(strings())
            .via((FileIO.ReadableFile f) -> {
                List<String> result = new ArrayList<>();
                try (BufferedReader br = new BufferedReader(Channels.newReader(f.open(), "UTF-8"))) {
                    int lineNr = 1;
                    String line = br.readLine();
                    while (line != null) {
                        result.add(lineNr + "," + line);
                        line = br.readLine();
                        lineNr++;
                    }
                } catch (IOException e) {
                    throw new RuntimeException("Error while reading", e);
                }
                return result;
            }));

上面的解决方案只是将行号预先添加到每个输入行。

 类似资料:
  • 问题内容: 从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我正在使用jquery datables / jedtiable,它传递回ROW和COLUMN号以及要更新的新值,如下所示。这是POST到另一个JSP页

  • 问题内容: 我已经看到了许多相关的问题,但是都没有直接解决我想做的事情。我正在从CSV文件中读取文本行。 所有项目都用引号引起来,有些则在引号内有其他逗号。我想按逗号分隔行,但忽略引号内的逗号。有没有一种方法可以在Python中执行此操作,而无需使用许多正则表达式语句。 一个例子是: 我想将其解析为4个单独的值变量: 我想念一个简单的选择吗? 问题答案: 不要尝试重新发明轮子。 如果要读取CSV文

  • 问题内容: 我有一个独立的应用程序,在该应用程序中,我必须用确认对话框提示用户,以保存他尝试通过关闭系统时所做的更改。 我知道通过使用我们可以做到。 有人可以帮我如何使用信号处理程序吗 问题答案: 2012年5月更新(两年半后) Trejkaz评论: 在当前版本的Java上,此信号处理代码失败,因为“ ”信号“由VM或OS保留”。 此外,当某些东西要求关闭应用程序时,其他有效信号名称实际上都不会触

  • 问题内容: 我想每三行生成一个数字 我知道我们可以使用窗口函数或循环或 结果; 还有其他方法可以在 数学 上实现这一目标。两段之间没有任何间隙 问题答案: 一种数学或算术方法可以是使用周期数本身: 只要“两个期间之间没有任何间隔”仍然适用,该方法就起作用。 如果您需要主查询中的子句,请将其应用于查询。只要不引起时间间隔就可以正常工作。

  • 问题内容: 我在程序中发现了一些问题。 我使用log4j进行日志记录, 但是,在日志文件中,所有行号都变为“?”。 对话模式如下: 问题答案: 您很可能在已编译的工件中缺少调试信息。也就是说,这不是log4j的错,您需要确保正在编译包含调试信息的东西。一个快速的测试是尝试使用您喜欢的IDE调试您的应用程序。如果没有调试信息,它将抱怨并且不会建立调试会话。

  • 本文向大家介绍vim 相对行号,包括了vim 相对行号的使用技巧和注意事项,需要的朋友参考一下 示例 在以下命令中,范围从当前行上方开始6行,并在下方下方3行结束: