Какой-нибудь совет, чтобы обратиться к пиковому времени обработки искрового потока каждые 10 секунд? - PullRequest
1 голос
/ 18 марта 2020

Я запускаю программу, использующую потоковую передачу искры, чтобы использовать данные kafka для выполнения статистики в реальном времени. Когда параметр numPartitions в функции reduceByKeyAndWindow не установлен, время обработки очень странное. Это пик каждые 10 секунд. ссылка на время обработки изображения Весь код следующий. Хотя, когда numPartitions установлено в 1, эту ситуацию можно разрешить, есть ситуация, что для обработки данных требуется numPartitions больше 1.

conf = SparkConf()
conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
conf.set('spark.driver.extraJavaOptions', "-Xss30M")
ctx = SparkContext(appName="PythonStreamingIDCount", conf=conf)
ctx.setLogLevel('FATAL')
ctx.setCheckpointDir('./checkpoint')
streaming_ctx = StreamingContext(ctx, 1)  # s
broker, topic = "127.0.0.1:9092", ["spark"]
kvs = KafkaUtils.createDirectStream(streaming_ctx, topic, {"metadata.broker.list": broker})
lines = kvs.map(lambda items: items[1])
counts = lines. \
    map(lambda ip: (ip, 1)). \
    reduceByKeyAndWindow(lambda a, b: a + b, lambda a, b: a - b, 60, 1)

Я не знаю, что происходит. Может ли какое-нибудь тело помочь мне?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...