如何对写入spark-shell控制台的输出进行分页?例如,当我运行以下命令来列出会话中定义的术语时,我经常会得到一个超过终端行数的长输出列表。
$intp.definedTerms.foreach{println(_)}
在bash shell中,我会使用less对命令或程序的输出进行分页。spark-shell有没有类似于less的分页功能?
谢谢。
发布于 2016-01-15 02:28:52
spark-shell没有,但在最后我链接到了关于Spark在RDDs上的管道()操作的信息,让您可以将输出派生到外部程序。
窗口滚动?
你没说你在哪个环境里?
例如,如果你在Ubuntu的Unity中,或者几乎所有的窗口系统中,终端窗口的滚动功能能满足你的需求吗?
您可以编辑.bashrc并在调用spark-shell之前修改滚动设置。
还有一些有用的基于图形用户界面的方法来影响窗口滚动:https://askubuntu.com/questions/385901/how-to-see-more-lines-in-the-terminal
这是另一个页面,提供了更多关于编辑.bashrc的建议,同样,更多关于您的环境的信息将会有所帮助。https://askubuntu.com/questions/51122/setting-gnome-terminal-window-size-from-within-bashrc
Spark中RDDS上的管道操作
此外,如果没有特定的代码,就很难知道这是否适用,有一种方法可以将RDDs上的操作输出到外部程序。参见http://spark.apache.org/docs/latest/programming-guide.html#transformations,下面是摘录:
通过shell命令传输RDD的每个分区,例如Perl或bash脚本。RDD元素被写入进程的stdin,输出到其stdout的行作为字符串的RDD返回。
发布于 2019-12-10 00:38:27
您可以使用ammonite-spark来使用Ammonite而不是spark-shell,并且它具有browse函数来对任何值进行分页。
https://stackoverflow.com/questions/34796683
复制相似问题