前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spark scala 操作

Spark scala 操作

作者头像
Tim在路上
发布2020-08-04 21:57:35
5630
发布2020-08-04 21:57:35
举报
基本操作
  1. 创建RDD
代码语言:javascript
复制
var data = Array(1,2,3,4) //数组

var distData = sc.parallelize(data,3) //创建RDD

distData.collect //收集展示

distData.take(1) //取出第一行/数组中一个数据占一行

2.读取文件数据

代码语言:javascript
复制
var distFile = sc.textFile("data.txt")//按行读
distFile.take(1)  //取出一行数据

//也可以同时读取多个文件,相当于多个文件拼接
//读取整个目录下的所有文件
//读取含有通配符的目录
textFile("/input/*.txt")

3.map操作,指定一个函数产生新的RDD,元素直接是一对一的关系。

代码语言:javascript
复制
var rdd1 = sc.parallelize(1 to 9,3)
var rdd2 = rdd1.map(x=>x*2)
rdd2.collect
res1: Array[Int] = Array(2, 4, 6, 8, 10, 12, 14, 16, 18)

4.filter对RDD进行过滤,返回过滤后的RDD

代码语言:javascript
复制
var rdd3 = rdd2.filter(x=>x>10)
rdd3.collect
res5: Array[Int] = Array(12, 14, 16, 18)

5.flatmap是一个一对多的map

代码语言:javascript
复制
 var rdd4 = rdd3.flatMap(x=>x to 20)
rdd4: org.apache.spark.rdd.RDD[Int] = MapPartitionsRDD[6] at flatMap at <console>:30

scala> rdd4.collect
res6: Array[Int] = Array(12, 13, 14, 15, 16, 17, 18, 19, 20, 14, 15, 16, 17, 18, 19, 20, 16, 17, 18, 19, 20, 18, 19, 20)

6.sample产生随机数组

代码语言:javascript
复制
var a = sc.parallelize(1 to 1000,3)
a.sample(false,0.1,0)
a.sample(false,0.1,0).count()

第一个参数是是否放回抽样,比例,随机种子

7.交集与并集

代码语言:javascript
复制
rdd1.union(rdd2)
rdd1.intersection(rdd2)

8.去重

代码语言:javascript
复制
distinct

9.分组groupbykey

代码语言:javascript
复制
val rdd0 = sc.parallelize(Array((1,1),(1,2),(2,3)))
val rdd11 = rdd0.groupByKey()
rdd11.collect

10.reduceByKey

代码语言:javascript
复制
是数据分组聚合操作,在一个key的数据集上使用
val rdd0 = sc.parallelize(Array((1,1),(1,2),(2,3),(2,1),(2,2),(2,3),3))
var rd,d = rdd0.reduceByKey((x,y)=>x+y)
rdd.collect
(1,6)(2,6)

11.combineByKey数据集合并

代码语言:javascript
复制
val data = Array((1,1.0),(1,2.0),(1,3.0),(2,4.0))
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档