【问题标题】:r language support for AWS DynamoDB [duplicate]AWS DynamoDB 的 r 语言支持 [重复]
【发布时间】:2013-09-21 18:35:11
【问题描述】:

这是对此的后续/更新问题:

AWS dynamodb support for "R" programming language

我正在寻找有关如何将表从 DynamoDB 读入 R 的示例或文档。

这个问题为我指明了正确的方向:

R + httr and EC2 api authentication issues

(由伟大的@hadley 本人回答!)。

如果我必须使用 httr 然后解析 json 响应也没关系,但我什至无法弄清楚如何格式化 POST 请求。

谢谢!

【问题讨论】:

  • 我的公司(Analytical Flavor Systems)现在正在开发一个开源包,用于从 R 中查询 DynamoDB。包发布后我会在此处发布链接。
  • 您的 DynamoDB - R 包有任何更新吗?

标签: r amazon-web-services amazon-dynamodb httr


【解决方案1】:

重复我从 here 的回答,因为有人向我发送此页面询问类似问题。

这是我用于将数据从 DynamoDB 读取到 R 中的简化版本。它依赖于 R 和 Python 可以交换数据这一事实,而 Python 中名为 boto 的库使获取数据变得非常容易来自 DynamoDB。如果这都是一个 R 包,那就太好了,但考虑到您可以从亚马逊获得 25GB 的免费存储空间,我不会抱怨。

首先,您需要一个像 query_dynamo.py 这样的 Python 脚本:

import boto3
import time

dynamodb = boto3.resource('dynamodb',
                          aws_access_key_id='<GET ME FROM AWS>',
                          aws_secret_access_key='<ALSO GET ME FROM AWS CONSOLE>',
                          region_name='us-east-1')

table = dynamodb.Table('comment')  ###Your table name in DynamoDB here

response = table.scan()
data = response['Items']

while 'LastEvaluatedKey' in response:
    response = table.scan(ExclusiveStartKey=response['LastEvaluatedKey'])
    data.extend(response['Items'])

然后在 R 中执行此操作。如果你在 Windows 上尝试这个,你可能想试试rPython-win。我在 Ubuntu Linux 16.04 LTS 上完成了这一切。

library(rPython)


python.load("query_dynamo.py")
temp = as.data.frame(python.get('data'))
df = as.data.frame(t(temp))
rm(temp)

现在您将拥有一个名为“df”的数据框,其中包含您放入 DynamoDB 中的任何内容。

【讨论】:

  • 刚刚标记了它。
【解决方案2】:

您可以像 connect to a SQL database 一样使用 Lambda functionConnect to Redshiftstream updates 连接到您的 DynamoDB 表,然后针对 Redshift 执行您需要的大数据分析。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    • 2014-12-31
    • 2020-08-16
    • 1970-01-01
    • 2011-11-08
    • 2018-03-17
    相关资源
    最近更新 更多