Scala入门笔记

mac安装scala

brew cask install java
brew install scala

本地安装scala环境:~/.zshrc

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home
export SCALA_HOME=/Library/Scala/scala-2.10.6
PATH=$PATH:${SCALA_HOME}/bin:${JAVA_HOME}/bin

Hello World

➜  ~ scala
Welcome to Scala 2.12.7 (OpenJDK 64-Bit Server VM, Java 11.0.1).
Type in expressions for evaluation. Or try :help.

scala> print("hello world!")
hello world!
scala> :quit

Scala IDEA和MAC版安装
IDEA 运行Scala程序出现无法加载主类问题的解决
+添加Library的Scala SDK(运行不报错),覆盖原来modules的dependencies里的Scala SDK(编译不报错,运行报错:找不到或无法加载主类

下载不动plugins?配置HTTP代理

IDEA 运行scala程序

object Test {
  def main(args: Array[String]): Unit = {
    println("Hello World~ ~ ~")
  }
}

eclipse 配置scala插件

下载插件(一定要对应eclipse版本下载)
http://scala-ide.org/download/prev-stable.html  


将features和plugins两个文件夹拷贝到eclipse安装目录中的”dropins/scala”目录下。
进入dropins,新建scala文件夹,将两个文件夹拷贝到“dropins/scala”下


Scala官网6个特征

  • Java和scala可以混编
  • 类型推测(自动推测类型)
  • 并发和分布式(Actor)
  • 特质,特征(类似java中interfaces 和 abstract结合)
  • 模式匹配(类似java switch)
  • 高阶函数


Scala的WordCount

导入spark-assembly-1.6.0-hadoop2.6.0.jar包;项目中创建words.txt文件

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.rdd.RDD
import org.apache.spark.rdd.RDD.rddToPairRDDFunctions

object WordCount {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf()
    conf.setMaster("local").setAppName("WC")
    val sc = new SparkContext(conf)
    val lines :RDD[String] = sc.textFile("./words.txt")
    val word :RDD[String]  = lines.flatMap{lines => {
      lines.split(" ")
    }}
    val pairs : RDD[(String,Int)] = word.map{ x => (x,1) }
    val result = pairs.reduceByKey{(a,b)=> {a+b}}
    // result.sortBy(_._1, false).foreach(println)
    result.sortBy(_._1,true).foreach(println)
    
    // 简化写法
    // lines.flatMap { _.split(" ")}.map { (_,1)}.reduceByKey(_+_).foreach(println)
  }
}

flatMap:1对多
map:来一个String出1个String,1对1
reduceByKey:相同key分在1组;对每1组的key进行累加
先分组,后对每一组的key对应的value去聚合

输出结果

(c++,2)
(hbase,2)
(hello,17)
(hive,1)
(java,5)
(matlab,3)
(mongodb,1)
(mysql,3)
(objective-c,2)
(oracle,1)
(pig,1)
(python,8)
(redies,2)
(sqoop,3)
(swift,3)
(word,4)
(zookeeper,1)

参考资料

Scala学习笔记(一) - 简书
hive找出掉线率最高的前10基站&WordCount


Scala学习笔记导航

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容

  • (写给因苦难而离开世界的孩子!) 踏着轻盈的步子 穿过漫花小径 远处 弥漫着欢声笑语 天使说 那里有快乐的世界 有...
    月空下阅读 289评论 2 7
  • 秋意浓, 离人心上秋意浓。 一杯酒, 情绪万种。 离别多, 叶落的季节离别多。 握住你的手, 放在心头。 我要你记...
    贾小呆520阅读 677评论 0 0