Java 使用wholeTextFiles进行Spark流式处理
我正在使用Spark 2.0并尝试使用wholeTextFiles API来流式传输文件。我的Spark程序正在成功读取文件夹中的第一批文件,但我无法流式处理后一批文件 请让我知道如何在使用WholeTextFiles API时传输文件 这是我的密码:Java 使用wholeTextFiles进行Spark流式处理,java,apache-spark,spark-streaming,Java,Apache Spark,Spark Streaming,我正在使用Spark 2.0并尝试使用wholeTextFiles API来流式传输文件。我的Spark程序正在成功读取文件夹中的第一批文件,但我无法流式处理后一批文件 请让我知道如何在使用WholeTextFiles API时传输文件 这是我的密码: SparkConf sparkConf = new SparkConf().setAppName("My app") .setMaster("local")
SparkConf sparkConf = new SparkConf().setAppName("My app")
.setMaster("local")
.set("spark.driver.allowMultipleContexts", "true");
JavaStreamingContext jssc = new JavaStreamingContext(sparkConf, Durations.seconds(15));
JavaPairRDD<String, String> WholeTextLocalFiles = jssc.sparkContext().wholeTextFiles("C:/Users/my/files/abcd7/simple/*.txt");
JavaRDD<String> stringRDD = wholeTextFiles.map(
-----
----
return mySchema;);
SQLContext hc = new HiveContext(jssc.sparkContext());
Dataset<Row> df = hc.createDataFrame(schemaRDD, mySchema.class);
df.createOrReplaceTempView("myView");
df.show();
jssc.start();
jssc.awaitTermination();
wholeTextFile将返回一个RDD。除非您对其执行某些操作,否则spark不会启动任何操作 “未注册任何输出操作,因此无需执行”错误表明您尚未使用 流式传输环境根本不存在 查看spark文档中有关如何编写流作业的示例。根据,在处理流时,应避免将master设置为
local
或local[1]
,因为它没有留下核心来处理数据
在本地运行Spark流媒体程序时,不要使用“本地”或
“本地[1]”作为主URL。这两个选项中的任何一个都意味着只有一个
线程将用于在本地运行任务。如果您使用的是
基于接收器的输入数据流(例如插座、卡夫卡、水槽等),
然后将使用单个线程运行接收器,不留下任何错误
用于处理接收数据的线程。因此,在本地运行时,
始终使用“本地[n]”作为主URL,其中n>接收者数量
运行(有关如何设置火花属性的信息,请参见火花属性)
大师)
你没有启动这条流。在对数据执行任何操作之后,都应该启动它,这样sparks就可以开始读取和处理数据;jssc.aittimination();Spark正在处理第一批数据。但没有任何进一步的批处理..用我得到的错误更新了问题..即使在执行df.show()之后,作业也不会流式处理。它只处理第一批,而不是流作业。你能给我一些指导吗。。
java.lang.IllegalArgumentException: requirement failed: No output operations registered, so nothing to execute
at scala.Predef$.require(Predef.scala:224)
at org.apache.spark.streaming.DStreamGraph.validate(DStreamGraph.scala:163)
at org.apache.spark.streaming.StreamingContext.validate(StreamingContext.scala:513)
at org.apache.spark.streaming.StreamingContext.liftedTree1$1(StreamingContext.scala:573)
at org.apache.spark.streaming.StreamingContext.start(StreamingContext.scala:572)
at org.apache.spark.streaming.api.java.JavaStreamingContext.start(JavaStreamingContext.scala:554)
at com.comcast.emm.vodip.WholeTextLocal.WholeTextLocal.main(WholeTextLocal.java:225)
Exception in thread "main" java.lang.IllegalArgumentException: requirement failed: No output operations registered, so nothing to execute
at scala.Predef$.require(Predef.scala:224)
at org.apache.spark.streaming.DStreamGraph.validate(DStreamGraph.scala:163)
at org.apache.spark.streaming.StreamingContext.validate(StreamingContext.scala:513)
at org.apache.spark.streaming.StreamingContext.liftedTree1$1(StreamingContext.scala:573)
at org.apache.spark.streaming.StreamingContext.start(StreamingContext.scala:572)
at org.apache.spark.streaming.api.java.JavaStreamingContext.start(JavaStreamingContext.scala:554)