我是开发map-duce函数的新手。考虑我有包含四列数据的csv文件。
例如:
101,87,65,67
102,43,45,40
103,23,56,34
104,65,55,40
105,87,96,40
现在,我想说
40 102
40 104
40 105
因为这些行在第四列中包含40个。
如何编写map归约函数?
基本上,WordCount示例非常类似于您试图实现的目标。与初始化每个单词的计数不同,您应该有一个条件来检查标记化字符串是否具有必需的值,并且只有在这种情况下才写入上下文。这将起作用,因为映射器将分别接收CSV的每一行。
现在还原器将接收已按键组织的值列表。在还原器中,您可以使用NullWritable作为返回值类型,而不是IntWritable作为产出值类型,因此您的代码将只输出键。此外,您不需要在还原器中循环,因为您只想输出键。
在我的回答中,我没有向您提供任何代码,因为您从中不会学到任何东西。让你远离这些建议。
编辑:因为你修改了你的问题与请求减少,这里有一些提示,你可以如何实现你想要的。
实现所需结果的一种可能性是:在Mapper中,在拆分(或特化)行之后,您可以将列3作为键写入上下文,将列0作为值写入上下文。由于您不需要进行任何类型的聚合,因此您的Reducer可以简单地编写映射器生成的键和值(是的,您的Reducer代码将以一行代码结束)。你可以查看我之前的一个答案,那里的图很好地解释了Map和Reduce阶段正在做什么。
我正在学习MapReduce,我想读取一个输入文件(逐句)并将每个句子写入一个输出文件,前提是它不包含单词“snake”。 例如。输入文件: 则输出文件应为: 为此,我在< code>map方法中检查句子(< code>value)是否包含单词snake。如果句子中不包含snake单词,那么我将在< code>context中书写该句子。 此外,我将化简器任务的数量设置为0,否则在输出文件中,我以
如何返回特定日期所在的行号? 类似这样的事情:
> 据说MapReduce接收一个文件并生成键值对。什么是钥匙?只是一个词,一个词的组合还是别的什么?如果关键是文件中的单词,那么为MapReduce编写代码的目的是什么?MapReduce应该在不实现特定算法的情况下做同样的事情。 如果所有的东西都转换成键值对,那么Hadoop所做的就是像JAVA和C#一样创建一个字典,Wright?也许Hadoop可以以更高效的方式创建字典。除了效率,Hado
我有一个熊猫数据框,看起来像这样(但实际上要大得多): 我只想删除包含-500(2)和整列(f和g)的整行。我的数据框是自动生成的,我还不知道哪些列和行包含-500。 有人知道怎么做吗? 谢谢
我用ObjectMapper将这个字符串覆盖到jsonNode。然后我试图在这个jsonNode中寻找一个特定的键,所以我使用了“.has”,但它不起作用!!以下是我所做的: 我想测试它是否有“id”键(它实际上存在于第31行),所以我使用了如如何检查json密钥是否存在所述: 但它总是显示“false”作为输出!!
我需要一个像这样的输出adv 1 a 2 aghy 1学校1 bk 1 如何编辑代码https://github.com/studhadoop/xmlparsing-hadoop/blob/master/xmlparser11.java。请帮帮我。