本地模式下的 Apache Spark 结构化流字计数示例超慢

Gal*_*lka 5 latency word-count apache-spark pyspark

我正在尝试在本地模式下为结构化流运行 Apache Spark 字数统计示例,但我得到了 10-30 秒的非常高的延迟。这是我正在使用的代码(取自https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html):

host = sys.argv[1]
port = int(sys.argv[2])

spark = SparkSession \
    .builder \
    .appName("StructuredNetworkWordCount") \
    .getOrCreate()

spark.sparkContext.setLogLevel("ERROR")

lines = spark \
    .readStream \
    .format("socket") \
    .option("host", host) \
    .option("port", port) \
    .load()

words = lines.select(
   explode(
       split(lines.value, " ")
   ).alias("word")
)

# Generate running word count
wordCounts = words.groupBy("word").count()

query = wordCounts \
    .writeStream \
    .outputMode("update") \
    .format("console") \
    .start()

query.awaitTermination()
Run Code Online (Sandbox Code Playgroud)

在编程指南中提到延迟应该在 100 毫秒左右,这似乎不是一个复杂的例子。另一件事要提到的是,当我在没有任何处理的情况下运行它时(只是将数据流式传输到输出),我会立即看到结果。

该示例在 Ubuntu 18.04、Apache Spark 2.4.4 上运行。

这是正常的,还是我在这里做错了什么?

谢谢!加尔