gpt4 book ai didi

python - 如何在Databricks中使用os.walk()来计算Azure datalake中的目录大小

转载 作者:行者123 更新时间:2023-12-03 04:01:56 26 4
gpt4 key购买 nike

如何在 Databricks 中使用 os.walk 来计算 Azure datalake 中的目录大小。我使用的Python版本是3。

我首先使用递归方法来获取目录大小,当文件路径位于目录内部较深处时,该方法失败并出现OOM错误。

现在我很好奇os.Walk()是否有效。

任何片段都会有帮助。

递归函数代码如下:[当其路径较深时会失败,因此,我需要不同的解决方案]

from dbutils import FileInfo
from typing import List

root_path = "/mnt/ADLS/...../..../"

def discover_size(path: str, verbose: bool = True):
def loop_path(paths: List[FileInfo], accum_size: float):
if not paths:
return accum_size
else:
head, tail = paths[0], paths[1:]
if head.size > 0:
if verbose:
<some code>
else:
<some code>
return loop_path(dbutils.fs.ls(path), 0.0)

discover_size(root_path, verbose=True)

最佳答案

你能尝试一下并反馈吗?

# Python
import sys, os
root = "/dbfs/mnt/rawdata/"
path = os.path.join(root, "targetdirectory")
for path, subdirs, files in os.walk(root):
for name in files:
print(os.path,joint(path, name))

或者也许是这个?

# Python
import sys, os
import pandas as pd

mylist = []
root = '/dbfs/mnt/rawdata/'
path = os.path.join(root, 'targetdirectory')
for path, subdirs, files in os.walk(root):
for name in files:
mylist.append(os.path.join(path, name))

len(mylist)
df = pd.DataFrame(mylist)

display(df)

# convert python df to spark df
spark_df = spark.createDataframe(df)
# write df out as table
spark_df.write.csv("/rawdata/final.csv")

关于python - 如何在Databricks中使用os.walk()来计算Azure datalake中的目录大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61935914/

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