spark RDD算子
spark RDD算子
Joie.
这个作者很懒,什么都没留下…
展开
-
spark sql 重写sql50道经典题
作者行业新人,如果有不对的地方,希望可以指出,共同学习。确定表名和字段1.学生表Student(s_id,s_name,s_birth,s_sex) --学生编号,学生姓名, 出生年月,学生性别2.课程表Course(c_id,c_name,t_id) – --课程编号, 课程名称, 教师编号3.教师表Teacher(t_id,t_name) --教师编号,教师姓名4.成绩表Score(s_id,c_id,s_score) --学生编号,课程编号,分数建表和插原创 2020-11-25 12:13:53 · 443 阅读 · 0 评论 -
spark RDD算子(十一)之RDD Action 保存操作saveAsTextFile,saveAsSequenceFile,saveAsObjectFile,saveAsHadoopFile 等
saveAsTextFiledef saveAsTextFile(path: String): Unitdef saveAsTextFile(path: String, codec: Class[_ <: CompressionCodec]): UnitsaveAsTextFile用于将RDD以文本文件的格式存储到文件系统中。codec参数可以指定压缩的类名。原创 2020-11-11 20:03:48 · 689 阅读 · 0 评论 -
spark RDD算子(十二)之RDD 分区操作上mapPartitions, mapPartitionsWithIndex
mapPartitionsmapPartition可以倒过来理解,先partition,再把每个partition进行map函数,适用场景如果在映射的过程中需要频繁创建额外的对象,使用mapPartitions要比map高效的过。比如,将RDD中的所有数据通过JDBC连接写入数据库,如果使用map函数,可能要为每一个元素都创建一个connection,这样开销很大,如果使用mapPartitions,那么只需要针对每一个分区建立一个connection。下面的例子,把每一个元素平方java 每一原创 2020-11-11 11:19:26 · 278 阅读 · 0 评论 -
spark RDD算子(十)之PairRDD的Action操作countByKey, collectAsMap
countByKeydef countByKey(): Map[K, Long]scala例子val conf = new SparkConf().setMaster("local[*]").setAppName("CountByKey_CollectAsMap_Scala")val sc = new SparkContext(conf)//scala公共代码val rdd = sc.parallelize(List((1,2),(2,4),(2,5),(3,1),(3,9),(3,6)))原创 2020-11-10 19:33:09 · 146 阅读 · 1 评论 -
spark RDD算子(九)之基本的Action操作 first, take, collect, count, countByValue, reduce, aggregate, fold,top
first返回第一个元素scala在这里插入代码片原创 2020-11-10 19:08:11 · 247 阅读 · 0 评论 -
spark RDD算子(八)之键值对关联操作 subtractByKey, join,fullOuterJoin, rightOuterJoin, leftOuterJoin
subtractByKeydef subtractByKey[W](other: RDD[(K, W)])(implicit arg0: ClassTag[W]): RDD[(K, V)]def subtractByKey[W](other: RDD[(K, W)], numPartitions: Int)(implicit arg0: ClassTag[W]): RDD[(K, V)]def subtractByKey[W](other: RDD[(K, W)], p: Partitioner)原创 2020-11-10 12:14:02 · 142 阅读 · 0 评论 -
spark RDD算子(七)之键值对分组操作 groupByKey,cogroup
groupByKeydef groupByKey(): RDD[(K, Iterable[V])]def groupByKey(numPartitions: Int): RDD[(K, Iterable[V])]def groupByKey(partitioner: Partitioner): RDD[(K, Iterable[V])]groupByKey会将RDD[key,value] 按照相同的key进行分组,形成RDD[key,Iterable[value]]的形式, 有点类似于sql中原创 2020-11-10 11:43:22 · 228 阅读 · 0 评论 -
spark RDD算子(六)之键值对聚合操作reduceByKey,foldByKey,排序操作sortByKey
reduceByKeydef reduceByKey(func: (V, V) => V): RDD[(K, V)]def reduceByKey(func: (V, V) => V, numPartitions: Int): RDD[(K, V)]def reduceByKey(partitioner: Partitioner, func: (V, V) => V): RDD[(K, V)]接收一个函数,按照相同的key进行reduce操作,类似于scala的reduce的原创 2020-11-10 10:06:37 · 546 阅读 · 0 评论 -
spark RDD算子(五)之键值对聚合操作 combineByKey
combineByKey简要介绍def combineByKey[C](createCombiner: (V) => C, mergeValue: (C, V) => C, mergeCombiners: (C, C) => C): RDcreateCombiner: combineByKey() 会遍历分区中的所有元素,因此每个元素的键要么还没有遇到过,要么就和之前的某个元素的键相同。如果原创 2020-11-09 20:08:07 · 175 阅读 · 0 评论 -
spark RDD算子(四)之创建键值对RDD mapToPair flatMapToPair
示例文件:我们在E:\Ideal\sparkdemo1\in\的位置下写入文件sample.txtaa bb cc aa aa aa dd dd ee ee ee eeff aa bb zksee kksee zz zksmapToPair将每一行的第一个单词作为键,1作为value创建pairRDDscala代码scala是没有mapToPair函数的,scala版本只需要map就可以了val conf = new SparkConf().setMaster("local[*]").原创 2020-11-09 18:38:56 · 197 阅读 · 0 评论 -
spark RDD算子(三) distinct,union,intersection,subtract,cartesian
distinctdistinct用于去重, 我们生成的RDD可能有重复的元素,使用distinct方法可以去掉重复的元素, 不过此方法涉及到混洗,操作开销很大union两个RDD进行合并intersectionRDD1.intersection(RDD2) 返回两个RDD的交集,并且去重intersection 需要混洗数据,比较浪费性能subtractRDD1.subtract(RDD2),返回在RDD1中出现,但是不在RDD2中出现的元素,不去重cartesianRDD1.carte原创 2020-11-09 16:52:32 · 324 阅读 · 0 评论 -
spark RDD算子(二) filter、map、flatMap
示例文件:我们在E:\Ideal\sparkdemo1\in\的位置下写入文件sample.txtaa bb cc aa aa aa dd dd ee ee ee eeff aa bb zksee kksee zz zksfilter我要将包含zks的行的内容给找出来scala版本val conf = new SparkConf().setMaster("local[*]").setAppName("FilterScala")val sc = SparkContext.getOrCre原创 2020-11-09 16:23:39 · 183 阅读 · 0 评论 -
spark RDD算子(一) parallelize、makeRDD、textFile
parallelize调用SparkContext 的 parallelize(),将一个存在的集合,变成一个RDD,这种方式试用于学习spark和做一些spark的测试scala版本def parallelize[T](seq: Seq[T], numSlices: Int = defaultParallelism)(implicit arg0: ClassTag[T]): RDD[T]第一个参数一是一个 Seq集合第二个参数是分区数返回的是RDD[T]scala> sc.para原创 2020-11-09 14:28:49 · 433 阅读 · 0 评论