首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中hadoop约简函数中的键值对滤波

R中hadoop约简函数中的键值对滤波
EN

Stack Overflow用户
提问于 2015-10-12 09:30:49
回答 1查看 681关注 0票数 0

我想知道如何在hadoop还原器函数中把条件过滤掉键,值对。例如,在下面给出的单词计数示例中,如何获得计数大于某个阈值的单词(例如,3 )。

代码语言:javascript
复制
library(rmr2)
library(rhdfs)

# initiate rhdfs package
hdfs.init()

map <- function(k,lines) {
  words.list <- strsplit(lines, '\\s')
  words <- unlist(words.list)
  return( keyval(words, 1) )
}

reduce <- function(word, counts) {
  keyval(word, sum(counts))
}

wordcount <- function (input, output=NULL) {
  mapreduce(input=input, output=output, input.format="text", map=map, reduce=reduce)
}

## read text files from folder example/wordcount/data
hdfs.root <- 'example/wordcount'
hdfs.data <- file.path(hdfs.root, 'data')

## save result in folder example/wordcount/out
hdfs.out <- file.path(hdfs.root, 'out')

## Submit job
out <- wordcount(hdfs.data, hdfs.out) 

## Fetch results from HDFS
results <- from.dfs(out)
results.df <- as.data.frame(results, stringsAsFactors=F)
colnames(results.df) <- c('word', 'count')

head(results.df)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-14 19:05:44

代码语言:javascript
复制
reduce <- function(word, counts) {
  if(sum(counts) > 3)
    keyval(word, sum(counts))
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33077684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档