0

我想使用 stocator 从运行 pyspark 的 Jupyter 笔记本(在 IBM Watson Studio 上)访问 IBM 云存储。有人可以告诉我该怎么做吗?

我知道 stocator 已预先安装,但您是否必须先从笔记本中输入凭据或设置(如果 COS 上有特定的存储桶,我正在尝试访问)

例如。我有一个存储桶名称:my-bucket

我如何访问它?

我知道我可以使用 ibm_boto3 直接访问 COS,但这是针对 spark 应用程序的,因此我需要能够通过 stocator 来访问。

4

2 回答 2

1

您需要做的就是为 spark 设置 hadoop 配置参数,然后您应该能够在 COS 存储桶中将数据帧写入为 csv。确保您使用的凭证确实具有对 COS 存储桶的写入者或更高的 IAM 访问权限。

hconf = sc._jsc.hadoopConfiguration()
hconf.set("fs.cos.servicename.iam.api.key", "**********")
hconf.set("fs.cos.servicename.endpoint", "<BUCKET_ENDPOINT>")
df.write.format("csv").save("cos://<bucket>.myservice/filename.csv")

上述代码来自这篇中篇文章:- https://medium.com/@rachit1arora/efficient-way-to-connect-to-object-storage-in-ibm-watson-studio-spark-environments-d6c1199f9f97

于 2019-11-18T19:57:33.020 回答
0

好的,要让它在我的情况下工作,我还必须添加访问密钥,而且你必须确保你正确使用服务名称,因为它适用于你,但在你使用的所有实例中它应该是相同的它。

hconf = sc._jsc.hadoopConfiguration()
hconf.set("fs.cos.sname.iam.api.key", "API_KEY")
hconf.set("fs.cos.sname.access.key","ACCESS_KEY")
hconf.set("fs.cos.sname.endpoint", "ENDPOINT")
rdd = sc.textFile('file.txt')
rdd.saveAsTextFile('cos://bname.sname/test.txt')
于 2019-11-19T19:09:36.827 回答