Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何在Spark结构化流媒体中指定批处理间隔?_Apache Spark_Pyspark_Spark Structured Streaming - Fatal编程技术网

Apache spark 如何在Spark结构化流媒体中指定批处理间隔?

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

我正在通过Spark结构化流媒体,遇到了一个问题

在StreamingContext、DStreams中,我们可以定义一个批处理间隔,如下所示:

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()