自从有人向我发送此页面询问类似问题以来,从这里重复我的回答。
这是我用于将数据从 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 中的任何内容。