Javascript 如何在hadoop map reduce编程框架中打印中间数据
假设我们有一个包含测试的文件:Javascript 如何在hadoop map reduce编程框架中打印中间数据,javascript,hadoop,collections,mapreduce,Javascript,Hadoop,Collections,Mapreduce,假设我们有一个包含测试的文件: hi how are you how is your job how is your family what is hadoop hi mapperclass的所需输出: hadoop[1] hi[1,1] how[1,1,1] is[1,1,1] your[1,1] 对于每个不同的字符串都是这样的…如果需要将映射器输出保存为文件,只需单独运行映射器作业即可。这可以通过删除reducer类或设置property job.setNumReduc
hi how are you
how is your job
how is your family
what is hadoop hi
mapperclass的所需输出:
hadoop[1]
hi[1,1]
how[1,1,1]
is[1,1,1]
your[1,1]
对于每个不同的字符串都是这样的…如果需要将映射器输出保存为文件,只需单独运行映射器作业即可。这可以通过删除reducer类或设置property job.setNumReduceTasks(0)来完成。 如果您的需求是打印映射器输出,那么只需执行System.out.println(key,value) 如果您需要打印减速机输入,我指的是键,列表[值]。您可以在reduce方法中执行System.out.println 要打印所有中间值,可以在映射器类、分区器类和还原器类中打印语句。输入文件: 德拉维德·班格罗尔 萨钦孟买酒店 多尼兰奇酒店 斋浦尔德拉维德酒店 多尼钦奈 塞瓦格德里酒店 甘比尔德里 加尔各答甘比尔酒店 减速机产量:德拉维德·班格罗、斋浦尔·多尼·兰奇、钦奈·甘比尔·德里、加尔各答·萨钦、孟买和德里 这可以使用Map-Reduce程序实现 映射器类:玩家名将是键,地名将是值
Reducer类:当我们遍历键(玩家名)时,我们会得到与之相关的所有值(地名)。我们只需构造包含键(玩家名)和逗号分隔值(地名)的字符串,然后从减速机输出。我不想在屏幕上打印。我想使用output.collect()将这些数据写入HDFS输出文件(part-00000);输入文件::Dravi Banglore Sachin Mumbai Dhoni Ranchi Dravi Jaipur Dhoni Chennai Sehwag Delhi Gambhir Delhi Gambhir Calcutta我期待的::Dravi Banglore,Jaipur Dhoni Ranchi,Chennai Gambhir Delhi,Calcutta Sachin Mumbai Sehwag Delhi reducer output.public void reducer(文本键/*shiv*/,迭代器值/*[23,56,87,90778]*/,OutputCollector output,Reporter r)抛出IOException{{String s=”“;而(value.hasNext()){LongWritable i=value.next();s=s+i+”,“;}s=s.substring(0,s.length()-1);output.collect(key,new IntWritable));//错误}你能纠正这个错误吗?s=s+i+“,”-->这会给你这样的字符串23,56,87,90778。然后,如果我们执行新的Intwritable(23,56,87,90778),它将抛出一个错误,即字符串无法转换为有效整数。你能告诉我你的确切要求吗。。