Pyspark:将csv写入谷歌云存储



你好,

我是谷歌云存储的新手,最近被分配了一项在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_keygcs_secret是提供给我以连接到该桶的那些。这将是我的道路:

gs://bucket_name

当我尝试这样做时,它最终会打开一个登录页面,让我使用电子邮件地址访问GCS,但事实显然并非如此。我正在寻找一个关于如何使用这些凭据从GS存储桶读取/写入数据的工作示例。

注意1:我使用相同的access_id和secret来设置gsutil,一切似乎都很好。

注意2:我已经在spark-jars目录(gcs-connector-hadoop3-latest.jar(中包含了所需的jar文件。

正如您在这里看到的,您在云存储中执行的大多数操作都必须经过身份验证(作为读取或写入对象(。除非您的对象是公共的,否则在使用对象/存储桶执行操作之前必须使用身份验证。您可以在gsutil身份验证、API身份验证、客户端库身份验证或用户帐户凭据之间进行选择。

最新更新