首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用sbt正确地构建罐子

用sbt正确地构建罐子
EN

Stack Overflow用户
提问于 2016-07-28 00:19:00
回答 1查看 221关注 0票数 0

我有一个地图缩减.scala文件如下:

代码语言:javascript
复制
import org.apache.spark._

object WordCount {
  def main(args: Array[String]){
    val inputDir = args(0)
    //val inputDir = "/Users/eksi/Desktop/sherlock.txt"
    val outputDir = args(1)
    //val outputDir = "/Users/eksi/Desktop/out.txt"
    val cnf = new SparkConf().setAppName("Example MapReduce Spark Job")

    val sc = new SparkContext(cnf)

    val textFile = sc.textFile(inputDir)
    val counts = textFile.flatMap(line => line.split(" "))
      .map(word => (word, 1))
      .reduceByKey(_ + _)
    counts.saveAsTextFile(outputDir)
    sc.stop()

  }
}

当我使用setMaster("local[1]")参数运行我的代码时,它工作得很好。

我想把这段代码放到一个.jar中,并将它扔给S3,以便与AWS一起工作。因此,我使用下面的build.sbt来做到这一点。

代码语言:javascript
复制
name := "word-count"

version := "0.0.1"

scalaVersion := "2.11.7"

// additional libraries
libraryDependencies ++= Seq(
  "org.apache.spark" % "spark-core_2.10" % "1.0.2"
)

它生成一个jar文件,但是我的scala代码中没有一个。当我提取.jar时,我看到的只是一个清单文件。

当我运行sbt package时,我得到的是:

代码语言:javascript
复制
[myMacBook-Pro] > sbt package
[info] Loading project definition from /Users/lele/bigdata/wordcount/project
[info] Set current project to word-count (in build file:/Users/lele/bigdata/wordcount/)
[info] Packaging /Users/lele/bigdata/wordcount/target/scala-2.11/word-count_2.11-0.0.1.jar ...
[info] Done packaging.
[success] Total time: 0 s, completed Jul 27, 2016 10:33:26 PM

我应该做什么来创建一个正确的jar文件,如

WordCount.jar WordCount

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-28 09:20:03

Ref:它生成一个jar文件,但是我的scala代码中没有一个。当我提取.jar时,我看到的只是一个清单文件。

确保您的WordCount.scala位于根目录或src/main/scala

来自http://www.scala-sbt.org/1.0/docs/Directories.html

源代码可以像hello/hw.scala一样放在项目的基本目录中。然而,大多数人并不是在真正的项目中这样做的;太多的杂乱。 在默认情况下,sbt对源文件使用与Maven相同的目录结构(所有路径都相对于基本目录):

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38625203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档