使用 cloudyr 进行数据科学
将 R
编程语言 用于项目时,请使用 cloudyr从 IBM Cloud® Object Storage 获取支持数据科学的功能。
本教程说明如何在 R
项目中集成 IBM Cloud® Platform 中的数据。 您的项目将使用 IBM Cloud Object Storage 作为项目中具有 S3-compatible 连接的存储器。
准备工作
在继续之前,我们需要确保具备以下先决条件:
- IBM Cloud Platform 帐户
- IBM Cloud Object Storage 的实例
- 已安装并配置
R
- S3-compatible 认证配置
创建 HMAC 凭证
在开始之前,我们可能需要在创建凭证时使用配置参数 {"HMAC":true}
来创建一组 HMAC 凭证 作为 服务凭证 的一部分。 例如,使用 IBM Cloud Object Storage CLI,如下所示。
ibmcloud resource service-key-create <key-name-without-spaces> Writer --instance-name "<instance name--use quotes if your instance name has spaces>" --parameters '{"HMAC":true}'
要存储生成的密钥的结果,请将文本 > cos_credentials
附加到示例中命令的末尾。 对于本教程,您需要查找带有子键 access_key_id
和 secret_access_key
的 cos_hmac_keys
标题。
cos_hmac_keys:
access_key_id: 7xxxxxxxxxxxxxxa6440da12685eee02
secret_access_key: 8xxxx8ed850cddbece407xxxxxxxxxxxxxx43r2d2586
虽然在环境变量中设置凭证是最佳实践,但您还可以在 R
脚本本身的本地副本中设置凭证。 也可以在使用 Renviron.site
或 .Renviron
文件启动 R
之前设置环境变量,用于在启动期间在 R
中设置环境变量。
您将需要在代码中设置 access_key_id
和 secret_access_key
的实际值以及实例的 IBM Cloud Object Storage 端点。
向 R
项目添加凭证
由于它超出了本教程的范围,因此假定您已安装 R
语言和应用程序套件。 在将任何库或代码添加到项目之前,请确保您具有可用于连接到 IBM Cloud Object Storage的凭证。 对于存储区和端点,您将需要相应的 区域。
Sys.setenv("AWS_ACCESS_KEY_ID" = "access_key_id",
"AWS_SECRET_ACCESS_KEY" = "secret_access_key",
"AWS_S3_ENDPOINT" = "myendpoint",
"AWS_DEFAULT_REGION" = "")
向 R
项目添加库
我们使用 cloudyr
S3-compatible 客户机 来测试凭证,从而列出存储区。 为了获取其他软件包,我们使用称为 CRAN 的源代码集合体,该集合体通过一系列
镜像进行操作。
对于此示例,我们使用示例中所示的 aws.s3,并将其添加到代码中以设置或访问您的凭证。
library("aws.s3")
bucketlist()
在 R
项目中使用库方法
您可以从使用样本包中学习很多知识。 例如,Cosmic Microwave background Data Analysis 的数据包显示了一个难题。 用于本地编译的项目的可执行文件小到足以在个人机器上工作,但由于数据的大小,使用源数据将受到限制。
使用软件包的版本 0.3.21
时,需要在请求中添加 region=""
以连接到 COS。
除了 PUT,HEAD 和其他兼容的 API 命令外,我们还可以使用先前包含的 S3-compatible 客户机来获取对象。
# return object using 'S3 URI' syntax, with progress bar
get_object("s3://mybucketname-only/example.csv", show_progress = TRUE)
向 R
项目添加数据
正如您可以猜测的那样,先前讨论的库具有可直接写入存储区的 save_object()
方法。 虽然有许多方法可以 装入数据,但我们可以使用 cloudSimplifieR 来处理 开放式数据集。
library(cloudSimplifieR)
d <- as.data.frame(csvToDataframe("s3://mybucket/example.csv"))
plot(d)
后续步骤
除了创建自己的项目外,您还可以使用 R Studio 来分析数据。