使用Spark从文件列表中读取文件

时间:2018-10-27 06:36:55

标签: apache-spark pyspark apache-spark-sql databricks

我需要读取和解析存储在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<<<).,在这种情况下它将更快。

0 个答案:

没有答案