2012-07-26 13 views
5

मैं आर के लिए नया हूं। मुझे पता है कि जावा में नक्शा कैसे कम करना है। मैं आर तो में एक ही कोशिश करना चाहते हैं किसी भी samle कोड दे रही है और में किसी भी एक मदद कर सकते हैं वहाँ किसी भी तय आर में MapReduce के लिए वहाँ प्रारूपआर में नक्शा कम करने के लिए कैसे लिखें?

कृपया किसी भी लिंक इस के अलावा अन्य भेजें: https://github.com/RevolutionAnalytics/RHadoop/wiki/Tutorial

किसी भी नमूना कोड अधिक उपयोगी होंगे।

+1

के लिए '[आर] mapreduce' इस पैकेज की तरह, उपयोगी लिंक्स के एक नंबर दे देंगे एक गूगल खोज: http: // Cran। r-project.org/web/packages/mapReduce/index.html और यह ब्लॉग: http://www.r-bloggers.com/making-sense-of-mapreduce/ – Andrie

+6

उस व्यक्ति को जो चुपचाप डाउनवॉटेड है: यह है प्यार की गर्मी http://blog.stackoverflow.com/2012/0 7/गर्मी-ऑफ-गर्मी-ऑफ-लव /, इसलिए मेरा सुझाव है कि आप कुछ चीजों में से एक करें 1) बताएं कि डाउनवोट क्यों है, 2) ओपी को समझाएं कि प्रश्न को कैसे सुधारें 3) प्रश्न संपादित करें ताकि एक अच्छा सवाल है। – Andrie

+1

डाउन-वोटर नहीं बल्कि यहां जाता है। मनोज, मुझे लगता है कि आपको अपना प्रश्न थोड़ा सा करना चाहिए। कृपया जो जानकारी आपने कोशिश की है उसे जोड़ें। "मैं जावा में एमआर लिख रहा हूं, लेकिन अब मैं इसे आर में देखना चाहता हूं। मैंने इस ट्यूटोरियल को पढ़ा है और यह और वह खोज किया है लेकिन मुझे बचने वाले अधिक ट्यूटोरियल्स में रुचि थी।" । आप क्या कर सकते हैं आर और एमआर (यदि पहले से मौजूद नहीं है) के संबंध में सभी संदर्भों की एक सूची इकट्ठा कर लेते हैं और इस सवाल को विकी बनाते हैं। –

उत्तर

2

जब आप जावा के अलावा किसी अन्य भाषा में मानचित्र को लागू करना चाहते हैं (हैडोप के साथ), तो आप स्ट्रीमिंग नामक एक सुविधा का उपयोग करते हैं। फिर डेटा को एसटीडीआईएन (रीडलाइन()) के माध्यम से मैपर को एसडीडीओयूटी (बिल्ली()) के माध्यम से हडोप पर वापस खिलाया जाता है, फिर एसटीडीआईएन (रीडलाइन()) के माध्यम से फिर से reducer करने के लिए और अंततः STDOUT (बिल्ली()) के माध्यम से धुंधला हुआ।

निम्नलिखित कोड article से लिया गया है, मैंने लिखा है कि एक मानचित्र लिखने पर लिखा गया है, जिसके लिए एचएडॉप के लिए आर कम है। कोड 2 ग्राम गिनने वाला माना जाता है लेकिन मैपरेडस-वार पर क्या चल रहा है यह देखने के लिए मैं काफी सरल कहूंगा।

# map.R 

library(stringdist, quietly=TRUE) 

input <- file("stdin", "r") 

while(length(line <- readLines(input, n=1, warn=FALSE)) > 0) { 
    # in case of empty lines 
    # more sophisticated defensive code makes sense here 
    if(nchar(line) == 0) break 

    fields <- unlist(strsplit(line, "\t")) 

    # extract 2-grams 
    d <- qgrams(tolower(fields[4]), q=2) 

    for(i in 1:ncol(d)) { 
    # language/2-gram/count 
    cat(fields[2], "\t", colnames(d)[i], "\t", d[1,i], "\n") 
    } 
} 

close(input) 

-

# reduce.R 

input <- file("stdin", "r") 

# initialize variables that keep 
# track of the state 

is_first_line <- TRUE 

while(length(line <- readLines(input, n=1, warn=FALSE)) > 0) { 
    line <- unlist(strsplit(line, "\t")) 
    # current line belongs to previous 
    # line's key pair 
    if(!is_first_line && 
     prev_lang == line[1] && 
     prev_2gram == line[2]) { 
     sum <- sum + as.integer(line[3]) 
    } 
    # current line belongs either to a 
    # new key pair or is first line 
    else { 
    # new key pair - so output the last 
    # key pair's result 
    if(!is_first_line) { 
     # language/2-gram/count 
     cat(prev_lang,"\t",prev_2gram,"\t",sum,"\n") 
    } 
    # initialize state trackers 
    prev_lang <- line[1] 
    prev_2gram <- line[2] 
    sum <- as.integer(line[3]) 
    is_first_line <- FALSE 
    } 
} 

# the final record 
cat(prev_lang,"\t",prev_2gram, "\t", sum, "\n") 

close(input) 

http://www.joyofdata.de/blog/mapreduce-r-hadoop-amazon-emr/

संबंधित मुद्दे