有谁能告诉我下面的grep命令是做什么的:
$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'
of1yzvn41#
http://wiki.apache.org/hadoop/grepgrep示例从文本文件中提取匹配字符串,并计算它们出现的次数。要运行该示例,请键入以下命令:
bin/hadoop org.apache.hadoop.examples.Grep <indir> <outdir> <regex> [<group>]
该命令的工作方式与unix grep调用不同:它不显示完整的匹配行,而只显示匹配的字符串,因此要显示与“foo”匹配的行,请使用.foo。作为正则表达式。程序按顺序运行两个map/reduce作业。第一个作业统计匹配字符串出现的次数,第二个作业按频率对匹配字符串进行排序,并将输出存储在单个输出文件中。你在问正则表达式本身是什么吗?其余的似乎都是直截了当的。
wgx48brx2#
免责声明:我还没有运行这个例子,只是在看了一眼之后就开始回答了http://wiki.apache.org/hadoop/grepcli调用是:bin/hadoop org.apache.hadoop.examples.grep[],您想了解。我怀疑这是正则表达式中的分组(随机链接-http://www.exampledepot.com/egs/java.util.regex/group.html)正如hadoop grep链接中提到的那样该命令的工作方式与unix grep调用不同:它不显示完整的匹配行,但只显示匹配字符串我从中得到的是,如果指定值(一个数字),它将只输出该组的值。例如(从组链接中提取)输入:aba regex:(a(b)*)+组0:aba组1:a组2:b如果的值为1,则结果为a。组0是完全匹配的,而不是原始字符串,在本例中恰好是相同的。
1wnzp6jl3#
除了其他人的评论之外,这个命令还有点混乱,因为它没有完全遵循示例。有一个“jar”和jar的名称,然后是“grep”命令,而不是“fullpath.grep”。它只是意味着它正在那个jar里寻找命令。
3条答案
按热度按时间of1yzvn41#
http://wiki.apache.org/hadoop/grep
grep示例从文本文件中提取匹配字符串,并计算它们出现的次数。
要运行该示例,请键入以下命令:
该命令的工作方式与unix grep调用不同:它不显示完整的匹配行,而只显示匹配的字符串,因此要显示与“foo”匹配的行,请使用.foo。作为正则表达式。
程序按顺序运行两个map/reduce作业。第一个作业统计匹配字符串出现的次数,第二个作业按频率对匹配字符串进行排序,并将输出存储在单个输出文件中。
你在问正则表达式本身是什么吗?其余的似乎都是直截了当的。
wgx48brx2#
免责声明:我还没有运行这个例子,只是在看了一眼之后就开始回答了http://wiki.apache.org/hadoop/grep
cli调用是:bin/hadoop org.apache.hadoop.examples.grep[],您想了解。
我怀疑这是正则表达式中的分组(随机链接-http://www.exampledepot.com/egs/java.util.regex/group.html)
正如hadoop grep链接中提到的那样
该命令的工作方式与unix grep调用不同:它不显示完整的匹配行,但只显示匹配字符串我从中得到的是,如果指定值(一个数字),它将只输出该组的值。
例如(从组链接中提取)
输入:aba regex:(a(b)*)+组0:aba组1:a组2:b如果的值为1,则结果为a。组0是完全匹配的,而不是原始字符串,在本例中恰好是相同的。
1wnzp6jl3#
除了其他人的评论之外,这个命令还有点混乱,因为它没有完全遵循示例。有一个“jar”和jar的名称,然后是“grep”命令,而不是“fullpath.grep”。它只是意味着它正在那个jar里寻找命令。