从spark 2.1中的textFileStream获取文件名

时间:2017-06-09 08:41:21

标签: scala file apache-spark streaming

我想将文件名连接到csv读取的spark streaming文件的数据。

实际上我使用这种方法来创建流监听器:

val lines: DStream[String] = streamingContext.textFileStream("file://" + dirPath)

注意:我使用非HDFS文件系统

1 个答案:

答案 0 :(得分:0)

您可以使用自己的fileStream:

JavaPairInputDStream<Text, Text> dStream = jssc.fileStream("dir", Text.class, Text.class, WholeTextFileInputFormat.class);

在Scala中它应该看起来像:

val dStream = jssc.fileStream[Text, Text, WholeTextFileInputFormat]("dir");

然后你有(path, file content)的DStream。您可以使用以下方法将其解析为更舒适的格式:

val convertedDStream = dStream.map((x, y) => (x.toString(), y.toString())