如何使用Apache Spark Java将文件作为来自hdfs的流读取? 我不想读取整个文件,我想拥有文件流以便在满足某些条件时停止读取文件,我该如何使用Apache Spark?
答案 0 :(得分:1)
您可以使用ssc方法
使用流式HDFS文件val ssc = new StreamingContext(sparkConf,Seconds(batchTime))
val dStream = ssc.fileStream [LongWritable,Text,TextInputFormat]( streamDirectory,(x:路径) => true,newFilesOnly = false)
使用上面的api param filter用于过滤要处理的路径的函数。
如果您的条件不是文件路径/名称并且基于数据,则需要在条件满足时停止流式传输。
为此你需要使用线程实现, 1)在一个线程中,您需要继续检查流式上下文是否已停止,如果ssc已停止,则通知其他线程等待并创建新的流式上下文。
2)在第二个线程中,您需要检查条件,如果条件满足则停止流式传输。
如果您需要解释,请告诉我。