我想知道是否有某种方法可以利用spark中hdfs文件夹结构中已经存在的元数据信息。例如,我使用以下代码将数据写入hdfs,
val columns = Seq("country","state")
dataframe1.write.partitionBy(columns:_*).mode("overwrite").
save(path)
这会生成类似的目录结构,
path/country=xyz/state=1
path/country=xyz/state=2
path/country=xyz/state=3
path/country=abc/state=4
我想知道的是使用spark,有没有一种方法可以将所有的分区和子分区作为 Map(String,List(String))
(不加载整个文件并使用groupby?),其中键是分区,值是该分区内所有子分区的列表。
上述示例的输出类似于以下内容
Map(xyz->List(1,2,3),abc->(4))
1条答案
按热度按时间vqlkdk9b1#
你的hdfs文件结构是这样的。。。
您需要使用它来获取字符串形式的完整路径。。
一旦你得到listbuffer所有文件的完整路径,包括子文件夹。。。您需要编写逻辑来填充Map。我要把它留给你。蒂伊。。
注意:listbuffer有一个组,您可以使用该组返回Map
在我的情况下,我做了这样的实验。。。
我得到的结果是
也许你可以用这个想法来进一步完善你想要的结果。