如何使用脚本凭据从gcs将.csv放入数据框?

问题描述 投票:0回答:1

我一直试图将gcs中的存储桶直接读取到这样的pandas数据框中:

gcs_df = pandas.read_csv("gs://my_bucket/my_file.csv")

结果为:

gcsfs.utils.HttpError: Anonymous caller does not have storage.objects.get access to the Google Cloud Storage object.

由于我没有在本地计算机上设置任何凭据(根据我的阅读)。

对于我通过以下方式使用服务帐户的脚本的所有其他功能:

sa_creds = service_account.Credentials.from_service_account_file("my_sa_key.json")

我可以通过某种方式将此信息传递给read_csv,这样我就不必在本地计算机上使用该帐户了?

有什么想法吗?

pandas google-cloud-storage google-authentication
1个回答
0
投票

因此pandas库取决于gcsfs库。因此,要做到上述所有,您需要做的是以下操作:

import pandas
import gcsfs

fs = gcsfs.GCSFileSystem(project= <project_id>, token=<json path>)
with fs.open("gs://my_bucket/my_file.csv") as f:
    gcs_df = pandas.read_csv(f)
print(gcs_df)

[是指以.json格式另存为密钥的服务帐户凭据。根据gcsfs docs,它可以是字典或更多。

© www.soinside.com 2019 - 2024. All rights reserved.