java - 在 map reduce word count 程序中,需要获取单词所在的文件
问题描述
我正在阅读多个输入文件以解决字数问题。
示例文件名:file1.txt file2.txt file3.txt
我能够获得字数,但是如果我还想获得文件名以及单词存在的计数,应该添加什么。
例如,
文件1的内容:欢迎来到Hadoop
文件 2 的内容:这是 hadoop
电流输出:
Hadoop 2
是 1
这 1
至 1
欢迎 1
预期输出:
Hadoop 2 File01.txt File02.txt
是 1 File02.txt
这 1 个 File02.txt
至 1 File01.txt
欢迎 1 File01.txt
解决方案
第一次输入一个拆分
String file = ((FileSplit)inputSplit).getPath().getName();
并从映射器收集单词和文件名作为输出。
在 reducer 中,根据键计算文件名并增加计数器并继续附加文件名。
file += filename;
textString = counter + file;
output.collect(key,new Text(textString));
这解决了问题。
推荐阅读
- c# - 当gRPC客户端在一个方法上抛出RpcException时,如何获取innerException for Internal errors
- flutter - Gsheets包未导入
- python - 如何在没有 pandas 或 numpy 的情况下清理数据?
- python - 是否可以在没有前缀 np 的 numpy 中使用 randint() 函数?
- html - 在移动设备上更改元素顺序
- python - 如何编写一个递归函数,返回从 n 倒数到 0 的数字列表?
- r - 将列名传递给函数内的问题
- apache-spark - 没有作业运行时,是否可以让 Dataproc 集群自动缩减到 0 个工作人员?
- augmented-reality - RealityKit 是否支持 LOD?
- python - 有没有办法访问元变量默认名称(所有大写的参数名称)?