Я пытаюсь запустить пример подсчета слов 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()
. В руководстве по программированию упоминается, что задержка должна составлять около 100 мс, и это не кажется сложным примером.упомянуто, что когда я запускаю это без какой-либо обработки (просто передавая данные на выход), я сразу вижу результаты.
Пример запускался на Ubuntu 18.04, Apache Spark 2.4.4.
Это нормально, или я здесь что-то не так делаю?
Спасибо! Гал