Пример подсчета структурированных потоковых слов в Apache Spark в локальном режиме очень медленный - PullRequest
0 голосов
/ 22 сентября 2019

Я пытаюсь запустить пример подсчета слов 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.

Это нормально, или я здесь что-то не так делаю?

Спасибо! Гал

...