摘要: saveAsTextFile `def saveAsTextFile(path: String, codec: Class[_ rdd1.saveAsTextFile("hdfs://oldsix1:9000/data/rdd/") //保存到HDFS scala rdd1.saveAsTextFi 阅读全文
posted @ 2018-08-11 01:38 oldsix666 阅读(1217) 评论(0) 推荐(0) 编辑
摘要: countByKey countByKey用于统计RDD[K,V]中每个K的数量 scala var rdd1 = sc.makeRDD(Array(("A",0),("A",2),("B",1),("B",2),("B",3))) rdd1: org.apache.spark.rdd.RDD[(S 阅读全文
posted @ 2018-08-11 01:37 oldsix666 阅读(184) 评论(0) 推荐(0) 编辑
摘要: take take用于获取RDD中从0到num 1下标的元素,不排序 scala var rdd1 = sc.makeRDD(Seq(10, 4, 2, 12, 3)) rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[40] a 阅读全文
posted @ 2018-08-11 01:36 oldsix666 阅读(232) 评论(0) 推荐(0) 编辑
摘要: aggregate aggregate用于聚合RDD中的元素,先使用seqOp将RDD中每个分区中的T类型元素聚合成U类型,再使用combOp将之前每个分区聚合后的U类型聚合成U类型 特别注意seqOp和combOp都会使用zeroValue的值,zeroValue的类型为U var rdd1 = 阅读全文
posted @ 2018-08-11 01:36 oldsix666 阅读(71) 评论(0) 推荐(0) 编辑
摘要: first first返回RDD中的第一个元素,不排序 scala var rdd1 = sc.makeRDD(Array(("A","1"),("B","2"),("C","3")),2) rdd1: org.apache.spark.rdd.RDD[(String, String)] = Par 阅读全文
posted @ 2018-08-11 01:34 oldsix666 阅读(228) 评论(0) 推荐(0) 编辑
摘要: Spark可以将RDD持久化到内存或磁盘文件系统中,默认情况下,spark将数据存于内存中,这样提高迭代计算以及各计算模型之间的数据共享,同时也带来了一定的风险性。 一般情况下执行节点60%内存用于缓存数据,剩下的40%用于运行任务。 什么情况下需要对数据进行持久化 (1)某步骤计算特别耗时,重新计 阅读全文
posted @ 2018-08-11 01:28 oldsix666 阅读(202) 评论(0) 推荐(0) 编辑
摘要: leftOuterJoin leftOuterJoin类似于SQL中的左外关联left outer join,返回结果以前面的RDD为主,关联不上的记录为空。只能用于两个RDD之间的关联,如果要多个RDD关联,多关联几次即可 参数numPartitions用于指定结果的分区数 参数partition 阅读全文
posted @ 2018-08-11 01:27 oldsix666 阅读(134) 评论(0) 推荐(0) 编辑
摘要: cogroup 参数为1个RDD 参数为2个RDD 参数为3个RDD cogroup相当于SQL中的全外关联full outer join,返回左右RDD中的记录,关联不上的为空 参数numPartitions用于指定结果的分区数 参数partitioner用于指定分区函数 var rdd1 = s 阅读全文
posted @ 2018-08-11 01:26 oldsix666 阅读(105) 评论(0) 推荐(0) 编辑
摘要: groupByKey 该函数用于将RDD[K,V]中每个K对应的V值,合并到一个集合Iterable[V]中 参数numPartitions用于指定分区数 参数partitioner用于指定分区函数 scala var rdd1 = sc.makeRDD(Array(("A",0),("A",2), 阅读全文
posted @ 2018-08-11 01:26 oldsix666 阅读(94) 评论(0) 推荐(0) 编辑
摘要: combineByKey() 该函数用于将RDD[K,V]转换成RDD[K,C],这里的V类型和C类型可以相同也可以不同 参数 | 参数说明 | createCombiner | 组合器函数,用于将V类型转换成C类型,输入参数为RDD[K,V]中的V,输出为C mergeValue | 合并值函数, 阅读全文
posted @ 2018-08-11 01:25 oldsix666 阅读(107) 评论(0) 推荐(0) 编辑
摘要: partitionBy() 该函数根据partitioner函数生成新的ShuffleRDD,将原RDD重新分区 scala var rdd1 = sc.makeRDD(Array((1,"A"),(2,"B"),(3,"C"),(4,"D")),2) rdd1: org.apache.spark. 阅读全文
posted @ 2018-08-11 01:24 oldsix666 阅读(94) 评论(0) 推荐(0) 编辑
摘要: zipWithIndex() 该函数将RDD中的元素和这个元素在RDD中的ID(索引号)组合成键/值对 scala var rdd2 = sc.makeRDD(Seq("A","B","R","D","F"),2) rdd2: org.apache.spark.rdd.RDD[String] = P 阅读全文
posted @ 2018-08-11 01:24 oldsix666 阅读(144) 评论(0) 推荐(0) 编辑
摘要: zip() zip函数用于将两个RDD组合成Key/Value形式的RDD,这里默认两个RDD的partition数量以及元素数量都相同,否则会抛出异常 scala var rdd1 = sc.makeRDD(1 to 10,2) rdd1: org.apache.spark.rdd.RDD[Int 阅读全文
posted @ 2018-08-11 01:23 oldsix666 阅读(95) 评论(0) 推荐(0) 编辑
摘要: mapPartitions(): 该函数和map函数类似,只不过映射函数的参数由RDD中的每一个元素变成了RDD中每一个分区的迭代器。如果在映射的过程中需要频繁创建额外的对象,使用mapPartitions要比map高效 比如,将RDD中的所有数据通过JDBC连接写入数据库,如果使用map函数,可能 阅读全文
posted @ 2018-08-11 01:22 oldsix666 阅读(94) 评论(0) 推荐(0) 编辑
摘要: union() 将两个RDD进行合并,不去重 scala var rdd1 = sc.makeRDD(1 to 2,1) rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[45] at makeRDD at :21 scala r 阅读全文
posted @ 2018-08-11 01:22 oldsix666 阅读(111) 评论(0) 推荐(0) 编辑
摘要: randomSplit(): 该函数根据weights权重,将一个RDD切分成多个RDD 该权重参数为一个Double数组,第二个参数为random的种子,基本可忽略 randomSplit的结果是一个RDD数组 权重的总和加起来为1 scala val data = sc.makeRDD(1 to 阅读全文
posted @ 2018-08-11 01:21 oldsix666 阅读(202) 评论(0) 推荐(0) 编辑
摘要: Mac OS 安装 Hive 一、环境说明 操作系统:macOS High Sierra 10.13.2 hadoop版本:apache hadoop 2.6.0 mysql版本:mysql 5.7.22 hive版本:apache hive 1.2.2 二、安装步骤 1. 在mysql数据库创建h 阅读全文
posted @ 2018-08-11 01:21 oldsix666 阅读(325) 评论(0) 推荐(0) 编辑
摘要: coalesce() 该函数用于将RDD进行重分区,使用 第一个参数为重分区的数目,第二个为是否进行shuffle,默认为false 只传入第一个参数,表示降低RDD中partitions(分区)数量为numPartitions,numPartitions要小于RDD原分区数量 若传入的numPar 阅读全文
posted @ 2018-08-11 01:20 oldsix666 阅读(79) 评论(0) 推荐(0) 编辑
摘要: map() 将一个RDD中的每个数据项,通过map中的函数映射变为一个新的元素。 输入分区与输出分区一对一,即:有多少个输入分区,就有多少个输出分区 scala val data = sc.textFile("/data/spark_rdd.txt") data: org.apache.spark. 阅读全文
posted @ 2018-08-11 01:20 oldsix666 阅读(108) 评论(0) 推荐(0) 编辑
摘要: Spark 主要以一个 弹性分布式数据集(RDD)的概念为中心,它是一个容错且可以执行并行操作的元素的集合。有两种方法可以创建 RDD : (1)在你的 (驱动程序)中 一个已存在 的集合, (2)在外部存储系统中引用一个数据集,例如,一个共享文件系统, ,`HBase Hadoop InputFo 阅读全文
posted @ 2018-08-11 01:19 oldsix666 阅读(488) 评论(0) 推荐(0) 编辑