为什么排序k1,1会改变输出?

Moh*_*hit 2 shell terminal hadoop

我是hadoop世界的新手,我正在努力学习用地图减少思维方式编写代码.

所以,我正在关注michael-noll教程.

我面临的挑战之一(除了理解新框架)是这个框架使用的终端技巧的数量.

那是什么呢.

  $echo "foo foo quux labs foo bar quux" | /home/hduser/mapper.py | sort -k1,1 | /home/hduser/reducer.py
Run Code Online (Sandbox Code Playgroud)

手段???echo有什么作用?

此外,上述代码的输出是:

  bar     1
  foo     3
  labs    1
   quux    2
Run Code Online (Sandbox Code Playgroud)

现在,如果我没有排序-k1,1 thingy

  foo     2
  bar     1
  labs    1
  foo     1
   quux    2
Run Code Online (Sandbox Code Playgroud)

排序标志有什么影响?-k1,1是什么意思?

谢谢..

参考:http: //www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/

Eri*_*son 6

在Linux中,垂直条|用于将一个命令的输出重定向为另一个命令的输入.

echo命令将以下字符串写入标准输出.所以在你的情况下,它是写入foo foo quux labs foo bar quux然后作为输入传递/home/hduser/mapper.py,其输出然后作为输入传递sort,等等.

sort是一个排序文本的Linux命令.该-k标志告诉它要排序的列.所以1,1告诉它从第1列开始排序,从第1列结束.

键入man sortLinux终端以了解有关该命令的更多信息.我希望这有帮助!