如何在spark已经运行时读取新的文本文件?

时间:2016-12-19 16:08:04

标签: apache-spark hdfs

我使用spark 2从HDFS读取数据并对其进行处理。 为了从HDFS导入我的数据,我使用以下内容:

JavaRDD<String> msg= spark.read().textFile("hdfs://myfolder/*").javaRDD();

但是我想知道火花是否会在我开始运行spark之后读取新文本文件。

如果不是这样,你能告诉我怎么做吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

你认为流媒体API会对你有用吗?它可以监视新文件的目录,并在最初没有所有数据时继续处理它们。

来自http://spark.apache.org/docs/latest/streaming-programming-guide.html#input-dstreams-and-receivers

“为了从与HDFS API兼容的任何文件系统(即HDFS,S3,NFS等)上的文件中读取数据,可以将DStream创建为:示例代码

Spark Streaming将监视目录dataDirectory并处理在该目录中创建的所有文件(不支持嵌套目录中写入的文件)。注意

  • 文件必须具有相同的数据格式。
  • 必须通过原子移动或将数据重命名为数据目录,在dataDirectory中创建文件。

  • 移动后,不得更改文件。因此,如果连续追加文件,则不会读取新数据。 “