Apache spark 如何从套接字读取流数据集?

Apache spark 如何从套接字读取流数据集?,apache-spark,spark-structured-streaming,Apache Spark,Spark Structured Streaming,下面的代码从套接字读取,但我没有看到任何输入进入作业。我运行了nc-l 1111并转储了数据,但我不确定为什么Spark作业无法从10.176.110.112:1111读取数据 数据集d=sparkSession.readStream().format(“套接字”) .选项(“主机”,“10.176.110.112”) .选项(“端口”,1111).load(); 下面的代码从套接字读取,但我没有看到任何输入进入作业 嗯,老实说,你确实不从任何地方读任何东西。您只描述了启动流媒体管道时要执行的

下面的代码从套接字读取,但我没有看到任何输入进入作业。我运行了
nc-l 1111
并转储了数据,但我不确定为什么Spark作业无法从
10.176.110.112:1111
读取数据

数据集d=sparkSession.readStream().format(“套接字”) .选项(“主机”,“10.176.110.112”) .选项(“端口”,1111).load(); 下面的代码从套接字读取,但我没有看到任何输入进入作业

嗯,老实说,你确实不从任何地方读任何东西。您只描述了启动流媒体管道时要执行的操作

因为您使用结构化流从套接字读取数据集,所以应该使用运算符触发数据获取(并且只有在定义接收器之后)

start():StreamingQuery开始执行流式查询,当新数据到达时,流式查询将持续将结果输出到给定路径。返回的StreamingQuery对象可用于与流交互

开始之前
您应该定义在何处传输数据。它可以是卡夫卡、文件、自定义流媒体接收器(可能使用
foreach
operator)或控制台

我在下面的示例中使用
console
sink(aka格式)。我还使用Scala,并将重写它到Java作为您的家庭练习

d.writeStream.  // <-- this is the most important part
  trigger(Trigger.ProcessingTime("10 seconds")).
  format("console").
  option("truncate", false).
  start         // <-- and this
d.writeStream//