Apache Spark将文件作为HDFS的流读取

时间:2017-01-28 10:48:19

标签: java apache-spark hdfs

如何使用Apache Spark Java将文件作为来自hdfs的流读取? 我不想读取整个文件,我想拥有文件流以便在满足某些条件时停止读取文件,我该如何使用Apache Spark?

1 个答案:

答案 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)在第二个线程中,您需要检查条件,如果条件满足则停止流式传输。

如果您需要解释,请告诉我。