Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-21-2023 10:22 AM
File size is only specified for files. So, if you specify a directory as your source, you have to iterate through the directory. The below snippet should work (and should be faster than the other solutions).
import glob
def get_directory_size_in_bytes(source_path: dir, pattern: str = '**/*.parquet') -> int:
source_path = '/dbfs/' + source_path.replace('dbfs','').lstrip('/').lstrip(':').rstrip('/')
files = glob.glob(f'{source_path}{pattern}')
directory_size = sum([dbutils.fs.ls(path.replace('/dbfs/',''))[0].size for path in files])
return directory_size