当前位置:   article > 正文

Spark使用入门及案例

spark使用

1.准备数据

su - spark

wget http://statweb.stanford.edu/~tibs/ElemStatLearn/datasets/spam.data

hadoop fs -mkdir /user/spark

hadoop fs -put spam.data /user/spark/

hadoop fs -put README.md /user/spark/

2.进入spark命令行

spark-shell

3.运行简单spark程序  

3.1加载文件

val inFile = sc.textFile("/user/spark/spam.data")

 3.2显示一行

inFile.first()

该命令表明:spark加载文件是按行加载,每行为一个字符串,这样一个RDD[String]字符串数组就可以将整个文件存到内存中。

 3.3 map函数的应用

val nums = inFile.map(x=>x.split(' ').map(_.toDouble))

nums.first()

这里的命令行:将每行的字符串转换为相应的一个double数组,这样全部的数据将可以用一个二维的数组 RDD[Array[Double]]来表示了

 3.4 collect函数的应用

val rdd = sc.parallelize(List(1,2,3,4,5))

val mapRdd = rdd.map(2*_)

mapRdd.collect

3.5 filter函数的应用

val filterRdd = sc.parallelize(List(1,2,3,4,5)).map(_*2).filter(_>5)

filterRdd.collect

3.6 flatMap函数的应用

val rdd = sc.textFile("/user/spark/README.md")

rdd.count

rdd.cache

rdd.count

val wordCount = rdd.flatMap(_.split(' ')).map(x=>(x,1)).reduceByKey(_+_)

wordCount.collect

wordCount.saveAsTextFile("/user/spark/wordCountResult")

查看,在shell命令行中

hadoop fs -ls /user/spark/wordCountResult

hadoop fs -text /user/spark/wordCountResult/part-*

部分截图

3.7 union函数应用

spark命令行

val rdd = sc.parallelize(List(('a',1),('a',2)))

val rdd2 = sc.parallelize(List(('b',1),('b',2)))

rdd union rdd2

res10.collect

 3.8 join函数的应用

val rdd1 = sc.parallelize(List(('a',1),('a',2),('b',3),('b',4)))

val rdd2 = sc.parallelize(List(('a',5),('a',6),('b',7),('b',8)))

rdd1 join rdd2

res0.collect

3.9 lookup函数的应用

val rdd1 = sc.parallelize(List(('a',1),('a',2),('b',3),('b',4)))

rdd1.lookup('a')

3.10 groupByKey函数的应用

val wc = sc.textFile("/user/spark/README.md").flatMap(_.split(' ')).map((_,1)).groupByKey

wc.collect

3.11 sortByKey函数的应用

val rdd = sc.textFile("/user/spark/README.md")

val wordcount = rdd.flatMap(_.split(' ')).map((_,1)).reduceByKey(_+_)

val wcsort = wordcount.map(x => (x._2,x._1)).sortByKey(false).map(x => (x._2,x._1))

wcsort.saveAsTextFile("/user/spark/sort_desc")

val wcsort2 = wordcount.map(x => (x._2,x._1)).sortByKey(true).map(x => (x._2,x._1))

wcsort2.saveAsTextFile("/user/spark/sort")

shell命令行查看

hadoop fs -ls /user/spark/sort

hadoop fs -text /user/spark/sort/part-*

部分截图

hadoop fs -ls /user/spark/sort_desc

hadoop fs -text /user/spark/sort_desc/part-*

部分截图

欢迎添加交流:

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/534415
推荐阅读
相关标签
  

闽ICP备14008679号