Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机)之上,并兼容现有的Java程序。因此,要安装Scala环境之前,首先需要安装Java的JDK。学习Scala编程语言,将为后续学习Spark和Flink奠定基础。视频讲解如下:
https://www.bilibili.com/video/BV1wdUWYeEcS/?aid=113503537076...
下面的代码展示了在Spark中如何使用Scala开发一个WordCount程序。
package demo
import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import org.apache.log4j.Logger
import org.apache.log4j.Level
object WordCountDemo {
def main(args: Array[String]): Unit = {
Logger.getLogger("org.apache.spark").setLevel(Level.ERROR)
Logger.getLogger("org.eclipse.jetty.server").setLevel(Level.OFF)
//本地模式
//val conf = new SparkConf().setAppName("WordCountDemo").setMaster("local")
//集群模式
val conf = new SparkConf().setAppName("WordCountDemo")
//创建SparkContext
val sc = new SparkContext(conf)
val result = sc.textFile("hdfs://bigdata111:9000/input/data.txt")
.flatMap(_.split(" "))
.map((_,1))
.reduceByKey(_+_)
//输出到屏幕
result.collect.foreach(println)
//输出到HDFS
result.saveAsTextFile("hdfs://bigdata111:9000/output/spark/wc")
sc.stop
}
}
在Flink中也可以使用Scala编程语言,下面的代码也将在Flink中执行一个WordCount程序。
package demo
import org.apache.flink.api.scala._
object WordCount {
def main(args: Array[String]) {
val env = ExecutionEnvironment.getExecutionEnvironment
val text = env.fromElements("I love Beijing","I love China",
"Beijing is the capital of China")
val counts = text.flatMap(_.split(" ")).map((_,1)).groupBy(0).sum(1)
counts.print()
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。