如何使用 Dataproc 中的 Jupyter notebook 获取 GCS Bucket 中的文件列表?

How to get the list of files in the GCS Bucket using the Jupyter notebook in Dataproc?


我最近开始在我的项目中使用 GCP,但在使用 Dataproc 集群中的 Jupyter notebook 中的存储桶时遇到了困难。目前,我有一个包含一堆文件的存储桶,以及一个带有 Jupyter 笔记本的 Dataproc 集群。我想要做的是遍历存储桶中的所有文件并从中提取数据以创建数据框。

我可以用下面的代码一次访问一个文件:data = spark.read.csv('gs://BUCKET_NAME/PATH/FILENAME.csv'),但是文件有几百个,我不能为每个文件写一行代码。通常,我会这样做:

import os
for filename in os.listdir(directory):
...

但这在这里似乎不起作用。所以,我想知道如何在 Dataproc 集群中使用 Jupyter notebook 遍历存储桶中的文件?

非常感谢任何帮助!

您可以使用以下命令列出存储桶中的元素:

from google.cloud import storage
client = storage.Client()
BUCKET_NAME = 'your_bucket_name'
bucket = client.get_bucket(BUCKET_NAME)
elements = bucket.list_blobs()
files=[a.name for a in elements]

如果您的存储桶中没有文件夹,名为文件的列表将包含文件的名称。