【问题标题】:Spark Streaming on real time message files实时消息文件上的 Spark Streaming
【发布时间】:2018-12-06 19:06:47
【问题描述】:

我的项目需要实时处理消息文件(.txt)。我曾经实时接收来自 3rd 方的消息文件到我们的登陆区,我们应该从那里拿起文件进行处理。以下是建议的数据流。

Source --> Landing Zone --> HDFS --> PySpark --> Parquet/CSV --> Data Store

每当我在着陆区看到一个新文件时,应该将其拾取并移动到 HDFS,然后下游进程应该实时处理它。我可以使用 PySpark 流式处理这个用例吗?如果是这样,请尽可能分享一些详细信息和链接。

【问题讨论】:

    标签: apache-spark pyspark hdfs pyspark-sql


    【解决方案1】:

    是的,您可以使用 Spark Structured Streaming 实时处理消息文件。 Structured Streaming 支持多种输入源,您可以配置使用 'FileSource' 作为数据源。

    Filesource 将写入目录中的文件作为数据流读取。支持的文件格式为 text、csv、json、orc、parquet。请注意,文件必须以原子方式放置在给定目录中,在您将文件从 Landing Zone 以原子方式移动到 HDFS 时,它可以正常工作。

    更多详情请参考:https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#input-sources API:https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.streaming.DataStreamReader

    注意结构化流支持从嵌套目录读取数据,我们可以提供全局路径作为文件源路径的输入。参考:Spark Structured Streaming - Read file from Nested Directories

    【讨论】:

      猜你喜欢
      • 2020-08-04
      • 2015-09-13
      • 1970-01-01
      • 2018-06-25
      • 2017-10-30
      • 2015-02-04
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多