接收到的流上的 Spark 流式打印
Spark streaming print on received stream
我尝试实现的基本上是每次收到数据流时打印 "hello world"
。
我知道在每个流上我都可以调用函数 foreachRDD
但这对我没有帮助,因为:
- 可能是没有数据处理
- 我不想在每个rdd上打印hello,我想在整个流上打印hello(不管我是否收到数据)。
基本上,每次程序尝试获取数据时(它每 30 秒执行一次,可以说是因为火花流上下文)我想打印 hello。
有办法吗?是否有类似 Spark Streaming 的 onlisten 事件?
DStream
每个批次间隔(在您的情况下为 30 秒)将包含一个且仅一个 RDD
,它在内部被多个分区分开。您可以检查它是否不为空,然后才打印 hello world:
// Create DStream from source
dstream.foreachRDD { rdd => if (!rdd.isEmpty) println("hello world") }
我尝试实现的基本上是每次收到数据流时打印 "hello world"
。
我知道在每个流上我都可以调用函数 foreachRDD
但这对我没有帮助,因为:
- 可能是没有数据处理
- 我不想在每个rdd上打印hello,我想在整个流上打印hello(不管我是否收到数据)。
基本上,每次程序尝试获取数据时(它每 30 秒执行一次,可以说是因为火花流上下文)我想打印 hello。
有办法吗?是否有类似 Spark Streaming 的 onlisten 事件?
DStream
每个批次间隔(在您的情况下为 30 秒)将包含一个且仅一个 RDD
,它在内部被多个分区分开。您可以检查它是否不为空,然后才打印 hello world:
// Create DStream from source
dstream.foreachRDD { rdd => if (!rdd.isEmpty) println("hello world") }