刚开始实施简单的烫伤启动计划。随后的this文档以供参考。在第一个示例中,它无法将write
方法解析为语法。
import com.twitter.scalding._
class WordCountJob(args: Args) extends Job(args) {
TypedPipe.from(TextLine(args("input")))
.flatMap { line => line.split("""\s+""") }
.groupBy { word => word }
.size
.write(TypedTsv(args("output")))
}
build.sbt文件和库依赖项
name := "SampleScaldingProject"
version := "1.0"
scalaVersion := "2.10.4"
resolvers ++= Seq( "maven.org" at "http://repo2.maven.org/maven2",
"conjars.org" at "http://conjars.org/repo",
"codahale.com" at "http://repo.codahale.com" )
libraryDependencies ++= Seq("org.scalatest" % "scalatest_2.10" % "2.1.0" % "test",
"com.twitter" % "scalding-core_2.10" % "0.15.0"
)
答案 0 :(得分:0)
显然版本已更改,如果你看一下github上的WordCountJob.scala
版本与你的不同:
package com.twitter.scalding.examples
import com.twitter.scalding._
class WordCountJob(args: Args) extends Job(args) {
TypedPipe.from(TextLine(args("input")))
.flatMap { line => line.split("\\s+") }
.map { word => (word, 1L) }
.sumByKey
// The compiler will enforce the type coming out of the sumByKey is the same as the type we have for our sink
.write(TypedTsv[(String, Long)](args("output")))
}
如果您查看API Scaladocs,则.size
阶段会返回UnsortedGrouped[K, Long]
,并且此特征不具有write
方法。
所以我假设API发生了变化。
我希望这会有所帮助。 问候。