Java 如何将Hadoop输出为文本、文本格式?
我有一个包含以下格式数据的文件: 导演电影 我正在使用hadoop和Java来处理它 计算每个导演的电影数量是非常基本的,但是如何修改代码以获得如下内容:Java 如何将Hadoop输出为文本、文本格式?,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,我有一个包含以下格式数据的文件: 导演电影 我正在使用hadoop和Java来处理它 计算每个导演的电影数量是非常基本的,但是如何修改代码以获得如下内容: mapper(file): for each (director, movie) in file: emit(director, movie) reducer(director, movies): movielist = [] for each movie in movies: mov
mapper(file):
for each (director, movie) in file:
emit(director, movie)
reducer(director, movies):
movielist = []
for each movie in movies:
movielist.add(movie)
emit(director, movielist)
导演电影1电影2电影3…我认为计算每个导演的电影数量很简单,高层结构可能是这样的:
mapper(file):
for each (director, movie) in file:
emit(director, movie)
reducer(director, movies):
movielist = []
for each movie in movies:
movielist.add(movie)
emit(director, movielist)
我认为计算每个导演的电影数量很简单,高层结构可能是这样的:
mapper(file):
for each (director, movie) in file:
emit(director, movie)
reducer(director, movies):
movielist = []
for each movie in movies:
movielist.add(movie)
emit(director, movielist)
这就行了
@Override
public void reduce(Text key, Iterable<Text> values, Context context)
throws IOException, InterruptedException {
String movies;
for (Text value : values) {
movies += value.toString() + " ";
}
context.write(key, new Text(movies));
}
@覆盖
公共void reduce(文本键、Iterable值、上下文)
抛出IOException、InterruptedException{
弦乐电影;
用于(文本值:值){
movies+=value.toString()+“”;
}
写(关键,新文本(电影));
}
这样就可以了
@Override
public void reduce(Text key, Iterable<Text> values, Context context)
throws IOException, InterruptedException {
String movies;
for (Text value : values) {
movies += value.toString() + " ";
}
context.write(key, new Text(movies));
}
@覆盖
公共void reduce(文本键、Iterable值、上下文)
抛出IOException、InterruptedException{
弦乐电影;
用于(文本值:值){
movies+=value.toString()+“”;
}
写(关键,新文本(电影));
}