2022年11月11日
摘要: Scala集合排序有三种方法:sorted、sortBy()、sortWith() (1)sorted 对一个集合进行自然排序,通过传递隐式的Ordering源码中有两点值得注意的地方:1.sorted方法中有个隐式参数ord: Ordering。2.sorted方法真正排序的逻辑是调用的java. 阅读全文
posted @ 2022-11-11 16:43 吴玉川 阅读(298) 评论(0) 推荐(0) 编辑
  2022年11月9日
摘要: 1、获取当前时间 (底层代码一致) val time1 = new DateTime() val time2 = DateTime.now() //底层调用的就是new DateTime() 2、格式化时间日期 (底层代码一致) val str1: String = time1.toString(" 阅读全文
posted @ 2022-11-09 17:38 吴玉川 阅读(139) 评论(0) 推荐(0) 编辑
  2022年11月8日
摘要: Scala同时支持可变集合和不可变集合,包含两个包: 可变集合:scala.collection.mutable 不可变集合:scala.collection.immutable Scala默认采用不可变集合,对于几乎所有的集合类,Scala都同时提供了可变(mutable)和不可变(immutab 阅读全文
posted @ 2022-11-08 15:06 吴玉川 阅读(48) 评论(0) 推荐(0) 编辑
  2022年10月11日
摘要: 创建DataFrame的三种方式: 1、通过spark读取数据源创建 sparkSession.read. 2、从一个已存在的RDD转换 3、从Hive表查询返回 import spark.implicits._ 这里的spark不是Scala中的包名,而是创建的sparkSession对象的变量名 阅读全文
posted @ 2022-10-11 16:33 吴玉川 阅读(67) 评论(0) 推荐(0) 编辑
  2022年10月10日
摘要: 报错如下: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: Caused by: java.lang.RuntimeException: The root scratch dir 阅读全文
posted @ 2022-10-10 17:57 吴玉川 阅读(62) 评论(0) 推荐(0) 编辑
  2022年9月23日
摘要: val count: RDD[(String, Int)] = mapRDD.reduceByKey(_ + _)count.collect() val value: RDD[(String, Iterable[(String, Int)])] = mapRDD.groupBy(_._1)value 阅读全文
posted @ 2022-09-23 15:24 吴玉川 阅读(44) 评论(0) 推荐(0) 编辑
  2022年8月16日
摘要: spark的每个RDD都会记录从创建到当前算子的依赖(血缘关系),当该RDD的部分分区数据丢失时,它可以根据这些信息来重新运算和恢复丢失的数据分区 toDebugString 方法查看 OneToOneDependency窄依赖,上游的RDD的一个分区被下游的RDD的一个分区所独享(独生子女) Sh 阅读全文
posted @ 2022-08-16 14:51 吴玉川 阅读(38) 评论(0) 推荐(0) 编辑
  2022年8月12日
摘要: spark在执行算子时,如果算子内部用到了外部(Driver)端的对象或变量,就一定会出现闭包;spark在执行算子之前会进行闭包检查,也就是对外部对象或变量进行序列化检查; 阅读全文
posted @ 2022-08-12 16:36 吴玉川 阅读(35) 评论(0) 推荐(0) 编辑
  2022年8月10日
摘要: groupByKey根据key对value进行分组,默认没有预聚合 combineByKeyWithClassTag[CompactBuffer[V]]( createCombiner, mergeValue, mergeCombiners, partitioner, mapSideCombine 阅读全文
posted @ 2022-08-10 16:48 吴玉川 阅读(197) 评论(0) 推荐(0) 编辑
  2022年8月5日
摘要: groupByKey根据k对v进行分组,如果要实现wordCount,需要再使用一个聚合算子,例如mapValues reduceByKey有聚合功能,最重要的是在shuffle过程之前可以对分区内相同key的数据进行预聚合(非常重要),这样shuffle过程中落盘的数据会减少,性能更好! 阅读全文
posted @ 2022-08-05 18:02 吴玉川 阅读(26) 评论(0) 推荐(0) 编辑