【问题标题】:Reading files from Apache Spark textFileStream从 Apache Spark textFileStream 读取文件
【发布时间】:2015-04-01 22:15:33
【问题描述】:

我正在尝试从 Hadoop 文件系统目录中读取/监视 txt 文件。但我注意到此目录中的所有 txt 文件本身都是目录,如下面的示例所示:

/crawlerOutput/b6b95b75148cdac44cd55d93fe2bbaa76aa5cccecf3d723c5e47d361b28663be-1427922269.txt/_SUCCESS   
/crawlerOutput/b6b95b75148cdac44cd55d93fe2bbaa76aa5cccecf3d723c5e47d361b28663be-1427922269.txt/part-00000
/crawlerOutput/b6b95b75148cdac44cd55d93fe2bbaa76aa5cccecf3d723c5e47d361b28663be-1427922269.txt/part-00001

我想读取零件文件中的所有数据。我正在尝试使用此 sn-p 中显示的以下代码:

val testData = ssc.textFileStream("/crawlerOutput/*/*")

但是,不幸的是它说它不存在/crawlerOutput/*/*textFileStream 不接受通配符吗?我应该怎么做才能解决这个问题?

【问题讨论】:

    标签: scala apache-spark spark-streaming


    【解决方案1】:

    textFileStream() 只是fileStream() 的包装,不支持子目录(请参阅https://spark.apache.org/docs/1.3.0/streaming-programming-guide.html)。

    您需要列出要监控的特定目录。如果您需要检测新目录,可以使用 StreamingListener 进行检查,然后停止流式传输上下文并使用新值重新启动。

    只是大声思考.. 如果您打算处理每个子目录一次并且只想检测这些新目录,那么可能会关闭另一个可能包含作业信息或文件令牌的位置,这些位置曾经存在可以在流式上下文中使用并调用相应的textFile() 来获取新路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-08
      • 2017-06-14
      • 2018-09-12
      • 2017-03-05
      • 1970-01-01
      • 1970-01-01
      • 2013-12-12
      相关资源
      最近更新 更多