本文主要是介绍Rdds基本操作Transformation,逐元素,map,filter,flatMap,集合运算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Rdds基本操作Transformation
转换,从之前的RDD构建一个新的RDD,map操作
逐元素map,接受一个函数,应用在RDD每一个元素,并返回一个新的RDD
val lines = sc.parallelize(Array("hello","spark","hello","world","!")) 测试时候使用,从已有集合中构造一个RDD
lines.foreach(println) 打印出每一行,5个元素分为了5个分区 hello spark
val line2 = lines.map(word=>(word,1)) 在每个元素后面加1
lines2.foreach(println) (hello,1) (spark,1)
filter()
接受函数,返回只包含满足filter函数的新RDD
val line3 = lines.filter(word=>word.contains("hello"")
lines3.foreach(println) hello hello
flatMap()
对每个输入元素,输出多个输出元素
压扁,将RDD元素压扁后返回一个新的RDD
val inputs = sc.textFile("/home/maixia/soft/helloSpark.txt")
inputs.foreach(println) hello! hello spark hello world
val lines = inputs.flatMap(line=>line.split(" "))
line代表每一行,空格分割;将3行的6个元素压成一起
lines.foreach(println) hellosparkhelloworldhello!
val lines2 = lines.map(word=>(word,1))
line2.foreach(print) (hello,1) (spark,1)
Rdds基本操作Transformation
集合运算,并集交集
val rdd1 = sc.parallelize(Array(("coffe","coffe","panda","monkey","tea"))
rdd1.foreach(print) coffe coffe panda monkey tea
val rdd2 = sc.parallelize(Array("coffe","monkey","kitty"))
rdd2.foreach(print) coffe monkey kitty
val rdd_distinct = rdd1.distinct() 去重
rdd_distinct.foreach(print) coffe panda monkey tea
val rdd_union=rdd1.union(rdd2) 不去重并集 coffe coffe panda monkey tea coffe monkey kitty
val rdd_inter=rdd1.intersection(rdd2) 交集 monkey coffe
val rdd_sub=rdd1.substract(rdd2) tea panda 在rdd1中有,rdd2没有的
这篇关于Rdds基本操作Transformation,逐元素,map,filter,flatMap,集合运算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!