डायनेमो डीबी से डेटा में पढ़ने के लिए मैं जो उपयोग कर रहा हूं उसका एक सरलीकृत संस्करण यहां है। यह इस तथ्य पर निर्भर करता है कि आर और पायथन डेटा का आदान-प्रदान कर सकते हैं, और पाइथन में boto नामक लाइब्रेरी को डेटा प्राप्त करना वास्तव में आसान बनाता है DynamoDB। अगर यह सब एक आर पैकेज था, तो यह साफ होगा, लेकिन मैं 25 जीबी मुफ्त स्टोरेज को अमेज़ॅन से प्राप्त कर सकता हूं।
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'])
फिर आर में आप यह करते हैं:
सबसे पहले, आप ऐसा नाम query_dynamo.py की तरह एक अजगर स्क्रिप्ट की जरूरत है। यदि आप विंडोज़ पर यह कोशिश कर रहे हैं, तो आप इसके बजाय rPython-win आज़मा सकते हैं। मैंने यह सब उबंटू लिनक्स 16.04 एलटीएस पर किया था।
library(rPython)
python.load("query_dynamo.py")
temp = as.data.frame(python.get('data'))
df = as.data.frame(t(temp))
rm(temp)
अब आपके पास डाइनेमो डीबी में जो कुछ भी रखा गया है, उसके साथ "डीएफ" नामक डेटाफ्रेम होगा।
मैंने इस उद्देश्य के लिए आर पैकेज बनाने पर विचार किया है, लेकिन आखिरकार इसके बजाय php का उपयोग करने का निर्णय लिया। यहां अपना दस्तावेज बनाने के लिए आपको दस्तावेज देना होगा, मुझे लगता है: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/MakingHTTPRequests.html आप शायद आरसीआरएल पैकेज का उपयोग करना चाहेंगे एपीआई – Rguy
तक पहुंचने में सहायता मैंने डायनेमोड के लिए पायथन कोड पर एक त्वरित रूप से देखा था, और ऐसा लगता है कि आपको पहले बहुत कम स्तर के सामान्य अमेज़ॅन एपीआई एक्सेस सामग्री को लागू करना होगा। मुझे संदेह है कि आर ने अभी तक आर में ऐसा किया है। आप कुछ पायथन कोड को कॉल करने के लिए 'system' का उपयोग कर सकते हैं, लेकिन आप कुछ दक्षता खो देंगे। – Spacedman
ईएमआर पर एस 3 या एचडीएफएस के साथ काम करने के लिए मौजूदा आर पुस्तकालयों का उपयोग करना संभव होगा, और – Guy