Spark DataFrame Zeppelin读取文件夹



我在Scala中使用谷歌存储和Zeppelin,我可以使用下一个查询加载所有json文件。

sqlContext.read.json("gs://myBucket/*/jsonfile.json")

我的数据被结构化为小块,每个块在myBucket中都有自己的文件夹。在chunk文件夹中,我得到了与该chunk 相关的文件

  • jsonfile.json
  • 其他数据.data
  • moreJsons.json

我想获得我所有的文件夹路径,然后在不同的进程/任务中处理。。。所以我可以做一些类似的事情:

if(isJson){
    sqlContext.read.json("gs://myBucket/chunkId/jsonfile.json")
}

在这个例子中,我知道通道路径:chunkId,并且,我得到了"isJson"的一些内部逻辑。

所以这就是我需要的(我希望它有多清楚…),我的问题是:如何在不阅读文件内容的情况下获得文件夹列表

Spark没有用于列出文件的内置机制。你可以使用任何你想做的机制。例如,如果Google Storage是通过Hadoop文件系统映射的,则可以使用Hadoop API。使用您的集群来实现快速广度优先的文件遍历,例如,下面这样的东西,我们在Swoop中使用它来执行快速临时任务。

使用Spark和Hadoop文件系统API的分布式文件列表

相关内容

  • 没有找到相关文章

最新更新