gpt4 book ai didi

hadoop - wordcount程序的具体词?

转载 作者:行者123 更新时间:2023-12-02 21:57:53 26 4
gpt4 key购买 nike

我的 wordcount 程序为我提供了所需的输出文件,其中包含所有单词及其出现的次数。现在,我必须附加此代码以支持查询,这样,当我输入特定单词时,它会输出相应的文件名,并且 wordcount 程序的输出应该是查询的输入。

我收到这些错误 - sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect 的 org.myorg.InvertedIndex.main(InvertedIndex.java:69) 线程“main”java.lang.ArrayIndexOutOfBoundsException 中的异常。 NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav‌​a:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.apache.hadoop .util.RunJar.main(RunJar.java:156)

最佳答案

好吧,如果您想在启 Action 业时将其作为控制台参数输入,并且您的映射器和 reducer 都在一个文件中,那么您可以简单地在此类中创建一个静态字符串:
private static String myWord;
然后在main()中初始化方法:
myWord = args[2];
在你身上使用它map()像这样的方法:

if(myWord.equals(word.toString()) {
output.collect(word, one);
}

这只会从映射器向reducer发出对,reducer会将其汇总。应该可以,但我自己没有测试。

@Edit:这很奇怪。您唯一可以尝试的事情(恕我直言)就是做类似于 WordCount 2.0 example 的事情。 .

正如您所注意到的(略低于源代码),它们的开头是这样的:
$ bin/hadoop jar /usr/joe/wordcount.jar org.myorg.WordCount -Dwordcount.case.sensitive=true /usr/joe/wordcount/input /usr/joe/wordcount/output -skip /user/joe/wordcount/patterns.txt

您可以将其更改为:
$ bin/hadoop jar InvertedIndex.jar org.myorg.InvertedIndex /user/james/input /user/james/output -word hello

并将我建议的行 (myWord = args[2]) 更改为:
for (int i=0; i < args.length; ++i) {
if ("-word".equals(args[i])) {
myWord = args[++i];
}
}

猜猜您可以使用该示例,因为它执行与您想要实现的目标类似的操作(将某些内容作为参数传递,然后使用它)。您可以检查它们存储来自参数的所有数据(方法 configure())等的位置。

关于hadoop - wordcount程序的具体词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9203360/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com