运行 AWS 中的 r 脚本
running r script in AWS
查看 this page 尤其是这段代码:
import boto3
account_id = boto3.client("sts").get_caller_identity().get("Account")
region = boto3.session.Session().region_name
ecr_repository = "r-in-sagemaker-processing"
tag = ":latest"
uri_suffix = "amazonaws.com"
processing_repository_uri = "{}.dkr.ecr.{}.{}/{}".format(
account_id, region, uri_suffix, ecr_repository + tag
)
# Create ECR repository and push Docker image
!docker build -t $ecr_repository docker
!$(aws ecr get-login --region $region --registry-ids $account_id --no-include-email)
!aws ecr create-repository --repository-name $ecr_repository
!docker tag {ecr_repository + tag} $processing_repository_uri
!docker push $processing_repository_uri
这明显不纯Python?这些是 AWS CLI 命令吗?我以前使用过 docker,但我发现这个例子非常混乱。有谁知道使用 sage maker/docker 在 AWS 中简单 运行 一些 R 作业的端到端示例吗?谢谢
这是 Python 混合了 shell 脚本魔术调用(!commands
)的代码。
魔术命令并非此平台独有,您可以在 Jupyter 中使用它们,但此特定代码在其平台上是 运行。 运行宁 R 脚本作为处理作业似乎是一种相当复杂的方式。
但是,您唯一真正需要关注的是 R 脚本和最后两个单元格块。顶部的指令(不要更改此行)创建一个文件(preprocessing.R),稍后执行,然后您可以看到结果。
只需 运行 所有代码单元格,第一个单元格中包含您自己的自定义 R 代码。请注意最后一个单元格中的 plot_key = "census_plot.png"
行。这是指在 R 代码中创建的图像。至于其他输出类型(例如文本),您必须查找必要的 Python 包(PIL 是一个图像处理包)并相应地进行调整。
尝试获取 R 脚本生成的 CSV 文件(此代码未经验证,因此您可能需要修复出现的任何问题):
import csv
csv_key = "plot_data.csv"
csv_in_s3 = "{}/{}".format(preprocessed_csv_data, csv_key)
!aws s3 cp {csv_in_s3} .
file = open(csv_key)
dat = csv.reader(file)
display(dat)
现在您应该了解如何处理 R 脚本示例生成的两种不同输出类型,然后您可以尝试根据它的输出调整您自己的 R 代码。
查看 this page 尤其是这段代码:
import boto3
account_id = boto3.client("sts").get_caller_identity().get("Account")
region = boto3.session.Session().region_name
ecr_repository = "r-in-sagemaker-processing"
tag = ":latest"
uri_suffix = "amazonaws.com"
processing_repository_uri = "{}.dkr.ecr.{}.{}/{}".format(
account_id, region, uri_suffix, ecr_repository + tag
)
# Create ECR repository and push Docker image
!docker build -t $ecr_repository docker
!$(aws ecr get-login --region $region --registry-ids $account_id --no-include-email)
!aws ecr create-repository --repository-name $ecr_repository
!docker tag {ecr_repository + tag} $processing_repository_uri
!docker push $processing_repository_uri
这明显不纯Python?这些是 AWS CLI 命令吗?我以前使用过 docker,但我发现这个例子非常混乱。有谁知道使用 sage maker/docker 在 AWS 中简单 运行 一些 R 作业的端到端示例吗?谢谢
这是 Python 混合了 shell 脚本魔术调用(!commands
)的代码。
魔术命令并非此平台独有,您可以在 Jupyter 中使用它们,但此特定代码在其平台上是 运行。 运行宁 R 脚本作为处理作业似乎是一种相当复杂的方式。
但是,您唯一真正需要关注的是 R 脚本和最后两个单元格块。顶部的指令(不要更改此行)创建一个文件(preprocessing.R),稍后执行,然后您可以看到结果。
只需 运行 所有代码单元格,第一个单元格中包含您自己的自定义 R 代码。请注意最后一个单元格中的 plot_key = "census_plot.png"
行。这是指在 R 代码中创建的图像。至于其他输出类型(例如文本),您必须查找必要的 Python 包(PIL 是一个图像处理包)并相应地进行调整。
尝试获取 R 脚本生成的 CSV 文件(此代码未经验证,因此您可能需要修复出现的任何问题):
import csv
csv_key = "plot_data.csv"
csv_in_s3 = "{}/{}".format(preprocessed_csv_data, csv_key)
!aws s3 cp {csv_in_s3} .
file = open(csv_key)
dat = csv.reader(file)
display(dat)
现在您应该了解如何处理 R 脚本示例生成的两种不同输出类型,然后您可以尝试根据它的输出调整您自己的 R 代码。