Use the map component of the mapreduce() to create the cubes of the integers from 1 to 25
# Conventional solution # create a list of 25 integers ints <- 1:25 result <- sapply(ints,function(x) x^3) result # MapReduce solution require(rmr2) require(reshape) rmr.options(backend = "local") # local or hadoop # load a list of 25 integers into HDFS hdfs.ints = to.dfs(1:25) # mapper for the key-value pairs to compute squares mapper <- function(k,v) { key <- v value <- c(key^3) keyval(key,value) } # run MapReduce out = mapreduce(input = hdfs.ints, map = mapper) # convert to a data frame df = as.data.frame(from.dfs(out)) #add identifiers for each row as they are consecutively the square and cube df$powers <- c('n^3') output <- cast(df,key ~ powers,value="val") output
This page is part of the promotional and support material for Data Management (open edition) by Richard T. Watson |