感谢这个方法 How to convert RDD to DStream in JAVA?我能够从文本文件中创建排队的流:
List<JavaRDD<String>> inputRdds = Arrays.stream(inputDirFile.listFiles((file) -> {
return file.getName().matches(properties.getInputFileRule());
})).map(file -> {
return sc().textFile(file.getAbsolutePath());
}).collect(Collectors.toList());
Queue<JavaRDD<String>> queue = new LinkedList<JavaRDD<String>>(inputRdds);
JavaDStream<String> inputForCheckpointAsStream = jsc().queueStream(queue, true);
像这样我得到了流,但每批只有一个文件。文件包含JSON数据。有没有办法在Spark2中使用SparkSession和数据集而不使用镶木地板文件来制作排队流(类似于上面的方法)?
sc()
是java spark context jsc()
是java流式上下文