Scala 以滚烫脚本打印到控制台
我正试图在控制台上用一个烫手的脚本显示一些内容。当我在滚烫的shell中运行相同的逻辑时,我得到了所需的输出,当我运行脚本时,我得到了一个错误: scripttest.scala:4:错误:值转储不是com.twitter.burning.type.TypedPipe[String]的成员 剧本是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
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烫伤回复”部分中有一个专门的小节,或者您也可以查看。另一种方法是,在您的脚本中,在您希望查看数据的位置(即代码的注释部分)之后剪切管道,然后
将其写入文件中。谢谢,这正是我想要的。如果它回答了你的问题,请随意接受它。干杯