【问题标题】:Is it possible to process unstructured data(multi-line web logs) using Apache beam?是否可以使用 Apache Beam 处理非结构化数据(多行网络日志)?
【发布时间】:2018-03-29 11:23:51
【问题描述】:

我有 java 正则表达式代码,可以读取我的非结构化 Web 日志文件的多行并生成 json 数据。

日志文件如下所示,

[2018-03-06 09:00:44,111] line1
[2018-03-06 09:00:46,236] line2
[2018-03-06 09:01:07,503] line3
[2018-03-06 09:01:20,097] line4

现在,我正在尝试在数据流管道中执行此转换。但是,我没有找到一起读取/处理多行的方法。有人可以帮我使用数据流处理多行网络日志文件吗?

【问题讨论】:

  • 您使用的是哪个 SDK? Python 还是 Java?
  • 我正在使用 java SDK
  • 试试pipeline.apply(TextIO.read().from(<path-to-file>))。它将返回一个PCollection,其中PCollection 的每个元素都是文件的一行。
  • @ArjunKay 我知道。在我的例子中,多行一起构成一个有意义的集合。所以我需要一种方法或步骤来一起处理多行。
  • 据我所知,这是不可能的。最好将日志记录应用程序更新为每条消息记录一行。

标签: google-cloud-dataflow apache-beam


【解决方案1】:

Dataflow/Apache Beam 一次读取一行,它不能同时处理多行。因此,我编写了一个过程,将多行文件转换为带分隔符的单行,然后作为输入传递给 Dataflow 管道。

【讨论】:

    猜你喜欢
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 2015-09-29
    相关资源
    最近更新 更多