Scala 以滚烫脚本打印到控制台

Scala 以滚烫脚本打印到控制台,scala,sbt,scalding,Scala,Sbt,Scalding,我正试图在控制台上用一个烫手的脚本显示一些内容。当我在滚烫的shell中运行相同的逻辑时,我得到了所需的输出,当我运行脚本时,我得到了一个错误: scripttest.scala:4:错误:值转储不是com.twitter.burning.type.TypedPipe[String]的成员 剧本是 import com.twitter.scalding._ class scripttest(args:Args) extends Job(args){ val hello = TypedPip

我正试图在控制台上用一个烫手的脚本显示一些内容。当我在滚烫的shell中运行相同的逻辑时,我得到了所需的输出,当我运行脚本时,我得到了一个错误: scripttest.scala:4:错误:值转储不是com.twitter.burning.type.TypedPipe[String]的成员

剧本是

 import com.twitter.scalding._
 class scripttest(args:Args) extends Job(args){
 val hello = TypedPipe.from(TextLine("tutorial/data/hello.txt"))
 hello.dump
 }
当我在控制台中运行相同的逻辑时,它成功地运行了。 控制台中的输出: 你好,世界 再见世界


请解释为什么会发生这种情况,以及如何在一个非常激烈的脚本中打印到控制台。

仔细查看后,您将在“2.6 REPL Reference”一节中的“TypedPipe/Grouped/CoGrouped objects上可用的2.6.1 Enrichments”小节中看到:

.dump:将内容打印到stdout(使用.toIterator)

因此,
dump
仅在REPL中可用

我看不到在控制台上编写的“烫手的方式”,我也不认为这有什么意义:您正在运行一个管道,因此唯一的“保证里程碑”是管道的末尾,此时您可以像在所有控制台上一样,将结果写入一个文件

如果只是打印“hello my job started”,请记住这只是一个Scala文件,请使用
println
(要获得更高级的日志记录,请与您的朋友联系)

要在克隆存储库后在本地运行脚本,请执行以下操作:

> ./sbt assembly
> ./scripts/scald.rb --local MyScript.scala

第一行将运行所有测试并构建“shuble.rb”,第二行使用该脚本运行您的shubling脚本。

我需要查看管道的中间内容来编写此案例的测试用例。您可能正在REPL中查找“快照”。它们在的“1.1.2烫伤回复”部分中有一个专门的小节,或者您也可以查看。另一种方法是,在您的脚本中,在您希望查看数据的位置(即代码的注释部分)之后剪切管道,然后
将其写入文件中。谢谢,这正是我想要的。如果它回答了你的问题,请随意接受它。干杯