2016-07-26 49 views
1

我正在斯卡拉与谷歌存储和Zeppelin工作,我可以通过使用下一个查询加载我所有的json文件。Spark DataFrame Zeppelin读取文件夹

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

我的数据是在对一小块一小块,每块有它自己的文件夹中myBucket结构。在块文件夹中我得到了有关该块

  • jsonfile.json
  • otherData.data
  • moreJsons.json

我想我所有的文件夹路径的文件,比在不同的过程流程/任务... 所以,我能够做一些事情这样:

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

在这例如,我知道chank路径​​:chunkId,并且我为`isJson获得了一些内部逻辑。

所以这就是我需要的(我希望它是多么清晰......),我的问题是:如何在不读取文件内容的情况下获取文件夹列表?

回答

0

Spark没有列出文件的内置机制。你可以使用任何你想做的机制。例如,如果Google存储通过Hadoop文件系统映射,则可以使用Hadoop API。使用您的群集实现快速广度优先的文件遍历,例如类似下面的内容,我们在Swoop用于快速临时任务。

Distributed file listing using Spark and the Hadoop filesystem APIs

相关问题