spark简单实例

本文通过实际操作演示了Scala环境下数据文件的加载、处理和分析过程,包括使用map、collect、filter、flatMap等函数进行数据转换和过滤,以及union、join、lookup、groupBy、sortByKey等操作实现数据整合和排序,旨在提升数据处理技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、准备文件
wget http://statweb.stanford.edu/~tibs/ElemStatLearn/datasets/spam.data
2、加载文件
scala> val inFile = sc.textFile("/tmp/spam")
3、显示一行
scala> inFile.first()
4、函数运用


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


nums.first()


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


val mapRdd = rdd.map(2*_)


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


filterRdd.collect


(4)flatMap
val rdd = sc.textFile("/home/scipio/README.md")
rdd.count
rdd.cache
rdd.count
val wordCount = rdd.flatMap(_.split(' ')).map(x=>(x,1)).reduceByKey(_+_)
wordCount.collect  
wordCount.saveAsTextFile("/home/scipio/wordCountResult.txt")
   
(5)union   
val rdd = sc.parallelize(List(('a',1),('a',2)))
val rdd2 = sc.parallelize(List(('b',1),('b',2)))
rdd union rdd2
res3.collect




(6) 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
res1.collect


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


(8)groupByKey
val wc = sc.textFile("/home/scipio/README.md").flatMap(_.split(' ')).map((_,1)).groupByKey
wc.collect


(9)sortByKey
val rdd = sc.textFile("/home/scipio/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("/home/scipio/sort.txt")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值