我有一个包含以下格式的数据的文件: 导演电影
我正在使用hadoop和Java来处理它。
计算每位导演的电影数量是非常基本的,但我如何修改代码来获得这样的内容:
导演movie1 movie2 movie3 ...
答案 0 :(得分: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)
答案 1 :(得分:1)
这样做。
@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));
}