01 2021 档案

摘要:input { kafka{ bootstrap_servers => ["18.3.10.53:9092,18.3.10.54:9092,19.3.10.55:9092,19.3.10.56:9092,19.3.10.57:9092,19.3.10.91:9092,19.3.10.92:9092, 阅读全文
posted @ 2021-01-28 14:11 bioamin 阅读(383) 评论(0) 推荐(0)
摘要:https://leetcode-cn.com/problems/two-sum/ 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 你可以按 阅读全文
posted @ 2021-01-25 17:27 bioamin 阅读(69) 评论(0) 推荐(0)
摘要:功能需求: 调度 与数据质量应该并行进行开发设计 1、ETL任务设计时均需要设计为失败可重跑:失败的原因包括源端数据存在问题、数据库服务重启等等 2、ETL任务设计时需要设计为失败自动尝试; 2、ETL任务应该可以实现可视化、便于快速查看依赖关系 3、ETL中数据质量的check应该发生在跨系统时刻 阅读全文
posted @ 2021-01-19 15:59 bioamin 阅读(227) 评论(0) 推荐(0)
摘要:1、save to hdfs json file spark.sparkContext.setLogLevel("error")val data=spark.read.json("hdfs://cslcdip/home/dip/lzm/sparkdata/people.json")data.writ 阅读全文
posted @ 2021-01-13 19:39 bioamin 阅读(291) 评论(0) 推荐(0)
摘要:package com.cslc import org.apache.hadoop.conf.Configuration import org.apache.hadoop.fs.Path import scala.collection.JavaConversions._ import org.apa 阅读全文
posted @ 2021-01-13 17:05 bioamin 阅读(351) 评论(0) 推荐(0)
摘要:1、来自外部文件json val data=spark.read.json("hdfs://cslcdip/home/dip/lzm/sparkdata/people.json") println(data.schema) data.show() 2、来自json格式的RDD val nameRDD 阅读全文
posted @ 2021-01-12 11:36 bioamin 阅读(409) 评论(0) 推荐(0)
摘要:1、配置hadoop环境并且制定 VM 2、配置hive的依赖包 <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-hive_2.11</artifactId> <version>2.3.0</version> <! 阅读全文
posted @ 2021-01-12 11:33 bioamin 阅读(889) 评论(0) 推荐(0)
摘要:一般情况下,一个客户端指定一个集群,但是存在一个客户端指定多个集群的情况,这种情况下,需要动态调整配置文件 //配置文件可以通过传参或者数据库进行读取 package com.cslc import org.apache.hadoop.conf.Configuration import org.ap 阅读全文
posted @ 2021-01-11 20:39 bioamin 阅读(1227) 评论(0) 推荐(0)
摘要:累加器原理图: 累加器创建: sc.longaccumulator("") sc.longaccumulator sc.collectionaccumulator() sc.collectionaccumulator sc.doubleaccumulator() sc.doubleaccumulat 阅读全文
posted @ 2021-01-11 18:58 bioamin 阅读(338) 评论(0) 推荐(0)
摘要:如何理解广播变量? 适用场景:大变量,比如100M以上的大集合。算子函数中使用到外部变量时,默认情况下,Spark会将该变量复制多个副本,通过网络传输到task中,此时每个task都有一个变量副本。如果变量本身比较大的话(比如100M,甚至1G),那么大量的变量副本在网络中传输的性能开销,以及在各个 阅读全文
posted @ 2021-01-11 17:02 bioamin 阅读(105) 评论(0) 推荐(0)
摘要:countByKey 和 countByValue都是 action算子 ,结果集均在driver端,输出时不需要单独做collect spark.sparkContext.setLogLevel("error") val bd=spark.sparkContext.parallelize(List 阅读全文
posted @ 2021-01-11 16:44 bioamin 阅读(286) 评论(0) 推荐(0)
摘要:zip transformation算子,将两个RDD中的元素(KV格式/非KV格式)变成一个KV格式的RDD,两个RDD的每个分区元素个数必须相同。 spark.sparkContext.setLogLevel("error") spark.sparkContext.setLogLevel("er 阅读全文
posted @ 2021-01-11 16:34 bioamin 阅读(360) 评论(0) 推荐(0)
摘要:mapPartitionWithindex transformation算子,每次输入是一个分区的数据,并且传入数据的分区号 spark.sparkContext.setLogLevel("error")val kzc=spark.sparkContext.parallelize(List(("hi 阅读全文
posted @ 2021-01-11 15:11 bioamin 阅读(244) 评论(0) 推荐(0)
摘要:foreachPartition action 算子,与foreach相比,foreach每次输入的是一行数据,而foreachPartition每次输入的是一个分区的数据(iterator) result2.foreachPartition(x=>{ println("**********") w 阅读全文
posted @ 2021-01-11 14:14 bioamin 阅读(509) 评论(0) 推荐(0)
摘要:mapPartition 是一个transformation 算子,主要针对需要建立连接的程序,比如数据写入数据库。 val kzc=spark.sparkContext.parallelize(List(("hive",8),("apache",8),("hive",30),("hadoop",1 阅读全文
posted @ 2021-01-11 10:28 bioamin 阅读(458) 评论(0) 推荐(0)
摘要:union、intersection subtract 都是transformation 算子 1、union 合并2个数据集,2个数据集的类型要求一致,返回的新RDD的分区数是合并RDD分区数的总和; val kzc=spark.sparkContext.parallelize(List(("hi 阅读全文
posted @ 2021-01-05 17:37 bioamin 阅读(130) 评论(0) 推荐(0)
摘要:join,leftOuterJoin,rightOuterJoin,fullOuterJoin 都是transformation类别的算子 作用在K,V格式的RDD上。根据K进行连接,对(K,V)join(K,W)返回(K,(V,W)) join后的分区数是多的那个的分区 join val kzc= 阅读全文
posted @ 2021-01-05 17:13 bioamin 阅读(411) 评论(0) 推荐(0)
摘要:action算子会触发spark进行运算,用于job划分,一个action算子就是一个job。 带有shuffle的算子用于划分stage(一个分区的数据去往多个分区),例如reduceByKey、 action算子如下: 1、count() 返回数据集中的元素数。会在结果计算完成后回收到Drive 阅读全文
posted @ 2021-01-04 19:14 bioamin 阅读(433) 评论(0) 推荐(0)
摘要:sortByKey和sortBy都是transforamation算子; sortByKey 源码如下: def sortByKey(ascending: Boolean = true, numPartitions: Int = self.partitions.length) : RDD[(K, V 阅读全文
posted @ 2021-01-04 17:12 bioamin 阅读(210) 评论(0) 推荐(0)
摘要:reduceBykey是一个transformation 算子 reduceByKey: 使用 func 函数合并具有相同键的值。对于每个key对应的多个value进行了merge操作,最重要的是它能够先在本地进行merge操作。merge可以通过func自定义。 groupByKey : 对每个k 阅读全文
posted @ 2021-01-04 16:21 bioamin 阅读(144) 评论(0) 推荐(0)
摘要:sample算子通常用于抽样,是一个transformation算子 参数:withReplacement=true代表有放回抽样 参数:fraction 代表抽样的比例 使用: data.sample(withReplacement=true,fraction = 0.5).collect().f 阅读全文
posted @ 2021-01-04 15:51 bioamin 阅读(582) 评论(0) 推荐(0)
摘要:flatMap 算子在word count中经常使用,是一个transformation 算子 1、如果使用map val arr=sc.parallelize(Array(("A",1),("B",2),("C",3))) arr.map(x=>(x._1+x._2)).collect.forea 阅读全文
posted @ 2021-01-04 15:35 bioamin 阅读(646) 评论(0) 推荐(0)
摘要:1、匿名函数 (参数:参数类型)=>函数体 匿名函数没有名字,使用 val f=(参数:参数类型)=>函数体 def f=(参数:参数类型)=>函数体 def test= (x:Int)=>{x*2} val test2=(x:Int)=>{x*3} println(test(2)) println 阅读全文
posted @ 2021-01-03 20:21 bioamin 阅读(104) 评论(0) 推荐(0)
摘要:1、与java switch类似 package com.cslc.day3 import scala.util.Random object MatchApp { def main(args: Array[String]): Unit = { val names=Array("liu","wang" 阅读全文
posted @ 2021-01-03 17:49 bioamin 阅读(134) 评论(0) 推荐(0)
摘要:scala 可变列表与不可变链表 package com.cslc.day2 object listApp { def main(args: Array[String]): Unit = { val l=List(1,2,3,4,5) println(l.head) println(l.tail) 阅读全文
posted @ 2021-01-03 16:12 bioamin 阅读(82) 评论(0) 推荐(0)
摘要:scala不可变数组和可变数组 package com.cslc.day2 object ArrayApp extends App { /* * 不可变数组 * */ //通过new和赋值进行初始化 val a:Array[String]=new Array[String](5) println(a 阅读全文
posted @ 2021-01-03 16:11 bioamin 阅读(63) 评论(0) 推荐(0)
摘要:object是静态的,只能做一次加载,调用时,不需要进行new class 类需要做new 新的对象,通过对象进行方法和属性调用trait 类是接口 1、与java类型,class 类里面有变量(类内部声明变量需要声明类型和占位符,或者初始化默认值;在类名后边进行变量定义只需要声明类型) packa 阅读全文
posted @ 2021-01-03 15:23 bioamin 阅读(108) 评论(0) 推荐(0)