第一个spark程序

Posted 南边雪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一个spark程序相关的知识,希望对你有一定的参考价值。

Scala开发,sbt打包,spark运行

1、创建文件目录结构:

2、创建Scala程序 SimpleAPP.Scala:

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf               

object SimpleApp {
    def main(args: Array[String]) {
        val logFile = "file:///mnt/hgfs/share/resource/jitanjiali.docx"
       //Should be some file on your system
        val conf = new SparkConf().setAppName("Simple Application")
        val sc = new SparkContext(conf)
        val logData = sc.textFile(logFile, 2).cache()
        val numAs = logData.filter(line => line.contains(\'a\')).count()
        val numBs = logData.filter(line => line.contains(\'b\')).count()
        println("Lines with a : %s, Lines with b: %s".format(numAs, numBs)) 
    }
}

3、使用sbt打包Scala程序

该程序依赖 Spark API,因此需要通过 sbt 进行编译打包。 在./sparkapp 中新建文件 simple.sbt,添加如下内容,声明该独立应用程序的信息以及与 Spark 的依赖关系:

 文件 simple.sbt 指明 Spark 和 Scala 的版本。在上面的配置信息中,scalaVersion用来指定scala的版本,sparkcore用来指定spark的版本。

为保证 sbt 能正常运行,先执行如下命令检查整个应用程序的文件结构:

将整个应用程序打包成 JAR(首次运行需要下载依赖包 ):

打包成功:

4、运行

将生成的 jar 包通过 spark-submit 提交到 Spark 中运行

自此完成第一个spark程序

本文源码摘自http://dblab.xmu.edu.cn/blog/1307-2/

以上是关于第一个spark程序的主要内容,如果未能解决你的问题,请参考以下文章

spark关于join后有重复列的问题(org.apache.spark.sql.AnalysisException: Reference '*' is ambiguous)(代码片段

Spark闭包与序列化

Spark:如何加速 foreachRDD?

片段不起作用并且有错误

自动刷新android片段,直到满足条件

更改片段内布局的按钮