你好,
我是谷歌云存储的新手,最近被分配了一项在GCS存储桶上写入数据的任务。我以前为S3做过这件事,但不知道如何使用GCS。我在这里和那里找到了一些示例代码(比如这个链接或这个(,但没有一个是我需要的。提供给我的:
bucket_name = {
google_storage_hmac_access_id = “SOMEKEY”
google_storage_hmac_secret = “SOMEKEY”
}
第一个链接中的方法需要一个用于凭据的json文件,而我手头没有这个文件。所以我在第二个链接中使用了这种方法,并在代码中添加了以下内容:
spark_context._jsc.hadoopConfiguration().set(
'fs.gs.impl', 'com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem'
)
# This is required if you are using service account and set true,
spark_context._jsc.hadoopConfiguration().set(
'fs.gs.auth.service.account.enable', 'false'
)
# Following are required if you are using oAuth
spark_context._jsc.hadoopConfiguration().set(
'fs.gs.auth.client.id', gcs_key
)
spark_context._jsc.hadoopConfiguration().set(
'fs.gs.auth.client.secret', gcs_secret
)
其中gcs_key
和gcs_secret
是提供给我以连接到该桶的那些。这将是我的道路:
gs://bucket_name
当我尝试这样做时,它最终会打开一个登录页面,让我使用电子邮件地址访问GCS,但事实显然并非如此。我正在寻找一个关于如何使用这些凭据从GS存储桶读取/写入数据的工作示例。
注意1:我使用相同的access_id和secret来设置gsutil
,一切似乎都很好。
注意2:我已经在spark-jars目录(gcs-connector-hadoop3-latest.jar
(中包含了所需的jar文件。
正如您在这里看到的,您在云存储中执行的大多数操作都必须经过身份验证(作为读取或写入对象(。除非您的对象是公共的,否则在使用对象/存储桶执行操作之前必须使用身份验证。您可以在gsutil身份验证、API身份验证、客户端库身份验证或用户帐户凭据之间进行选择。