我需要读取和解析存储在Azure blob存储上的所有blob。斑点名称看起来像"/uploads/*/*/*/di.xml"
。
我这样读
rawDf = spark.read \
.format("com.databricks.spark.xml") \
.options(rowTag="di", mode = "DROPMALFORMED") \
.schema(...) \
.load("/uploads/*/*/*/di.xml") \
...
如果我在一个小的数据集上运行它,则运行速度足够快。但是,当我在整个数据集上运行它时,它似乎挂在文件名枚举上。我发现有一篇很好的文章how to avoid recursive list() calls解释了这个问题。
我想准备Blob名称列表,并将其保存到一个大文件中,然后将其上传到可访问的存储器中,以备生成火花。没问题
我的问题是如何读取文件列表并将其发送到.load(>>>huge_list_of_files<<<).
,在这种情况下它将更快。