Spark常用的算子总结——Map

从一个list变成 key value

val a = sc.parallelize(List("dog", "tiger", "lion", "cat", "panther", " eagle"), 2)
val b = a.map(x => (x, 1))
b.collect.foreach(println(_))

# /*
# (dog,1)
# (tiger,1)
# (lion,1)
# (cat,1)
# (panther,1)
# ( eagle,1)
# */
val a = sc.parallelize(List("dog", "tiger", "lion", "cat", "panther", " eagle"), 2)
val b = a.map(x => (x.length, x))
b.mapValues("x" + _ + "x").collect

# //结果
# Array(
# (3,xdogx),
# (5,xtigerx),
# (4,xlionx),
# (3,xcatx),
# (7,xpantherx),
# (5,xeaglex)
# )

自定义函数生成新的rdd

val a = sc.parallelize(1 to 9, 3)
val b = a.map(x => x*2)
b.collect
# 结果Array[Int] = Array(2, 4, 6, 8, 10, 12, 14, 16, 18)  

就是把key value变成另一个key value

val l=sc.parallelize(List((1,‘a‘),(2,‘b‘)))
var ll=l.map(x=>(x._1,"PV:"+x._2)).collect()
ll.foreach(println)
# (1,PVa)
# (2,PVb)

原文地址:https://www.cnblogs.com/pocahontas/p/11334497.html

时间: 2024-11-11 07:06:37

Spark常用的算子总结——Map的相关文章

Spark常用的算子总结(2)——flatMap

与map类似,区别是原RDD中的元素经map处理后只能生成一个元素,而原RDD中的元素经flatmap处理后可生成多个元素 val a = sc.parallelize(1 to 4, 2) val b = a.flatMap(x => 1 to x)//每个元素扩展 b.collect /* 结果 Array[Int] = Array( 1, 1, 2, 1, 2, 3, 1, 2, 3, 4) */ 原文地址:https://www.cnblogs.com/pocahontas/p/1133

spark常用的算子总结(8)—— filter

把超过某一个数的拿出来collect val filterRdd = sc.parallelize(List(1,2,3,4,5)).map(_*2).filter(_>5) filterRdd.collect # res5: Array[Int] = Array(6, 8, 10) 原文地址:https://www.cnblogs.com/pocahontas/p/11441040.html

Spark常用的算子总结(3)—— flatMapValues

flatmapValues就是和flatmap差不多,但是人家本身就是个key value了,所以一个pair怎么变成多个pair呢,就是根据关于values的函数 val a = sc.parallelize(List((1,2),(3,4),(5,6))) val b = a.flatMapValues(x=>1 to x) b.collect.foreach(println(_)) /*结果 (1,1) (1,2) (3,1) (3,2) (3,3) (3,4) (5,1) (5,2) (

08、Spark常用RDD变换

08.Spark常用RDD变换 8.1 概述 Spark RDD内部提供了很多变换操作,可以使用对数据的各种处理.同时,针对KV类型的操作,对应的方法封装在PairRDDFunctions trait中,KV类的RDD可以被隐式转换成PairRDDFunctions类型.其中很多的操作,和传统的SQL语句中的操作是对应的,只是底层换成Spark的MR计算. 8.2 常用变换 操作 解释 map 变换,将输入的每个元素进行响应操作,生成新的元素 flatMap 压扁,取出具有可迭代性质的组件中每个

图像处理常用边缘检测算子总结

图像处理常用边缘检测算子总结 转 不同图像灰度不同,边界处一般会有明显的边缘,利用此特征可以分割图像.需要说明的是:边缘和物体间的边界并不等同, 边缘指的是图像中像素的值有突变的地方,而物体间的边界指的是现实场景中的存在于物体之间的边界.有可能有边缘的地方并非边界,也有可能边界的地方并无边 缘,因为现实世界中的物体是三维的,而图像只具有二维信息,从三维到二维的投影成像不可避免的会丢失一部分信息:另外,成像过程中的光照和噪声也是不可避 免的重要因素.正是因为这些原因,基于边缘的图像分割仍然是当前图

常用Actoin算子 与 内存管理

一.常用Actoin算子 (reduce .collect .count .take .saveAsTextFile . countByKey .foreach ) collect:从集群中将所有的计算结果获取到本地内存,然后展示 take:从集群中将一部分的计算结果获取到本地内存,然后展示 rdd.collect rdd.take(n) 二.内存管理 1.RDD内存持久化

STL中常用的vector,map,set 用法

STL中常用的vector,map,set 用法 C++的标准模板库(Standard Template Library,简称STL)是一个容器和算法的类库.容器往往包含同一类型的数据.STL中比较常用的容器是vector,set和map,比较常用的算法有Sort等. . 一. vector 1.声明: 一个vector类似于一个动态的一维数组. vector中可以存在重复的元素! vector<int> a;          // 声明一个元素为int类型的vector a vectot&

Spark常用的transformation算子

1.map 和 mapPartitions map的输入变换函数应用于RDD中所有元素,而mapPartitions应用于所有分区.区别于mapPartitions主要在于调用粒度不同.mapPartition可以倒过来理解,先partition,再把每个partition进行map函数, 适用场景: 如果在映射的过程中需要频繁创建额外的对象,使用mapPartitions要比map高效的多. val numbers: RDD[Int] = sc.parallelize(seqs,3) //ma

spark 的一些常用函数 filter,map,flatMap,lookup ,reduce,groupByKey

定义不带参数也不带返回值的函数(def :定义函数的关键字  printz:方法名称) scala> def printz = print("scala hello") 定义带参数也带返回值的函数(这种函数在定义时也可以不带返回值的类型,scala会自动推算出.建议还是带上) scala> def minNum(x:Int,y:Int):Int = if(x>y) x else y //:Int 是该函数的返回值类型 minNum: (x: Int, y: Int)I