gpt4 book ai didi

apache-spark - 将数百万个小文件从 Azure Data Lake Storage 加载到 Databricks

转载 作者:行者123 更新时间:2023-12-02 01:02:17 24 4
gpt4 key购买 nike

我在 Azure Data Lake Store 中有一个分区文件夹结构,其中包含大约 600 万个 json 文件(大小从几 kb 到 2 mb)。我正在尝试使用 Data Bricks 中的 Python 代码从这些文件中提取一些字段。

目前我正在尝试以下操作:

spark.conf.set("dfs.adls.oauth2.access.token.provider.type", "ClientCredential")
spark.conf.set("dfs.adls.oauth2.client.id", "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx")
spark.conf.set("dfs.adls.oauth2.credential", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
spark.conf.set("dfs.adls.oauth2.refresh.url", "https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx/oauth2/token")

df = spark.read.json("adl://xxxxxxx.azuredatalakestore.net/staging/filetype/category/2017/*/")

这个例子甚至只读取了文件的一部分,因为它指向“staging/filetype/category/2017/”。它似乎有效,当我运行这些命令时,有一些工作开始了。它只是非常慢。

Job overview

作业 40 为所有子文件夹编制索引并且速度相对较快 Job 40

Job 41 检查一组文件,看起来有点快是真的 enter image description here

然后是作业 42,这就是缓慢开始的地方。它似乎与工作 41 进行相同的事件,只是...慢 enter image description here

我感觉我和this thread有类似的问题.但是job 41的速度让我怀疑。有没有更快的方法来做到这一点?

最佳答案

添加到 Jason 的回答中:

我们已经在 Azure Data Lake 中运行了一些测试作业,使用 U-SQL 对大约 170 万个文件进行操作,并且能够在大约 20 小时内使用 10 个 AU 完成处理。该作业生成数千个提取顶点,因此如果 AU 数量更多,它可能会在很短的时间内完成。

我们没有测试过 6m 文件,但如果您愿意尝试,请告诉我们。

无论如何,我同意 Jason 减少数量并使文件更大的建议。

关于apache-spark - 将数百万个小文件从 Azure Data Lake Storage 加载到 Databricks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49753456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com