Apache spark 如何在Spark结构化流媒体中指定批处理间隔?
我正在通过Spark结构化流媒体,遇到了一个问题 在StreamingContext、DStreams中,我们可以定义一个批处理间隔,如下所示:Apache spark 如何在Spark结构化流媒体中指定批处理间隔?,apache-spark,pyspark,spark-structured-streaming,Apache Spark,Pyspark,Spark Structured Streaming,我正在通过Spark结构化流媒体,遇到了一个问题 在StreamingContext、DStreams中,我们可以定义一个批处理间隔,如下所示: from pyspark.streaming import StreamingContext ssc = StreamingContext(sc, 5) # 5 second batch interval 如何在结构化流媒体中做到这一点 我的流媒体有点像: sparkStreaming = SparkSession \ .builder \ .app
from pyspark.streaming import StreamingContext
ssc = StreamingContext(sc, 5) # 5 second batch interval
如何在结构化流媒体中做到这一点
我的流媒体有点像:
sparkStreaming = SparkSession \
.builder \
.appName("StreamExample1") \
.getOrCreate()
stream_df = sparkStreaming.readStream.schema("col0 STRING, col1 INTEGER").option("maxFilesPerTrigger", 1).\
csv("C:/sparkStream")
sql1 = stream_df.groupBy("col0").sum("col1")
query = sql1.writeStream.queryName("stream1").outputMode("complete").format("memory").start()
此代码按预期工作,但是,如何/在何处定义批处理间隔
我是结构化流媒体的新手,请指导我。tl;dr使用
触发器(…)
(在DataStreamWriter
上,即writeStream
之后)
这是一个很好的来源 有多种选项,如果不设置批处理间隔,Spark将在处理完最后一批后立即查找数据。扳机是这里的关键 从手册中: 流式查询的触发器设置定义了 流式数据处理,查询是否将作为 具有固定批处理间隔或连续批处理间隔的微批处理查询 处理查询 一些例子: 默认触发器(尽快运行微批处理) 具有两秒微批量间隔的ProcessingTime触发器 一次性触发器 具有一秒检查点间隔的连续触发器
@JacekLaskowski放弃了gitbook?@thebluephantom你的意思是我不再使用gitbook作为内部在线书籍?是的…他们放弃了git支持,所以我不再喜欢他们了。寻找替代品。
df.writeStream \
.format("console") \
.start()
df.writeStream \
.format("console") \
.trigger(processingTime='2 seconds') \
.start()
df.writeStream \
.format("console") \
.trigger(once=True) \
.start()
df.writeStream
.format("console")
.trigger(continuous='1 second')
.start()