Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将Hadoop输出为文本、文本格式?_Java_Hadoop_Mapreduce - Fatal编程技术网

Java 如何将Hadoop输出为文本、文本格式?

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

我有一个包含以下格式数据的文件: 导演电影

我正在使用hadoop和Java来处理它

计算每个导演的电影数量是非常基本的,但是如何修改代码以获得如下内容:

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()+“”;
}
写(关键,新文本(电影));
}