自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 收藏
  • 关注

原创 在 Sublime Text 4 for macOS 中使用多个光标

在 Sublime Text 4 for macOS 中使用多个光标仅使用触控板的情况下怎么实现鼠标中键呢

2023-12-04 15:38:22 563

原创 在mac中删除本地 Maven 仓库中所有的 .lastUpdated 文件

删除本地 Maven 仓库中所有的 .lastUpdated 文件

2023-11-30 10:42:30 705

原创 REGEXP_REPLACE() 函数,替换字符串中特定字符

【代码】REGEXP_REPLACE() 函数,替换字符串中特定字符。

2023-01-10 13:58:42 894 1

原创 Infa报错ORA-01891: Datetime/Interval internal error

Infa

2022-11-03 10:48:06 198

原创 数组去重方法

数组去重

2022-08-31 14:09:42 122 1

原创 sql中将其他数据类型转为string

Oracle sql语法

2022-08-19 10:11:21 2632

原创 Oracle中delete和update语法

Oracle中的delete和update语法

2022-07-18 10:59:06 539

原创 Oracle中timestamp格式转换

timestamp格式转换

2022-07-12 13:24:25 1258 1

原创 时间工具类

package com.huc.utils;import java.time.*;import java.time.format.DateTimeFormatter;import java.util.Date;/** * LocalDate 年月日 * LocalTime 时分秒 * LocalDateTime 年月日 时分秒 */public class DateTimeUtil { private final static DateTimeFormatter for

2022-03-27 14:14:08 373

原创 SpringBoot中常见注解@Controller@ResponseBody@RestController@RequestMapping@RequestParam

package com.huc.demo.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;//@Controller// 将类标识为Controller层

2021-12-01 11:20:40 446

原创 SQL中求两日期的天数差值 DATEDIFF()

select DATEDIFF(“2020-12-10”,“2020-12-11”)结果为:-1select DATEDIFF(“2020-12-12”,“2020-12-11”)结果为:1

2021-11-05 23:39:27 1668

原创 Spark SQL中DataFrame和DataSet之间相互转换

package com.huc.sparkSqlimport org.apache.spark.SparkConfimport org.apache.spark.rdd.RDDimport org.apache.spark.sql.{DataFrame, Dataset, SparkSession}object Test04_DSAndDF { def main(args: Array[String]): Unit = { // 1. 创建sparkSession配置对象 v

2021-11-04 23:23:40 1216

原创 Spark SQL中RDD和DataSet之间相互转换

package com.huc.sparkSqlimport org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.rdd.RDDimport org.apache.spark.sql.{DataFrame, Dataset, SparkSession}/** * 1.RDD 转换为DataSet * RDD.map{x=>User(x._1,x._2)}.toDS() * SparkSQL 能够自动将包含

2021-11-04 23:22:22 1470

原创 SparkSQL中RDD和DF之间相互转换

package com.huc.sparkSqlimport org.apache.spark.rdd.RDDimport org.apache.spark.sql.{DataFrame, Row, SparkSession}import org.apache.spark.{SparkConf, SparkContext}/** * 1.RDD 转换为DataFrame * 手动转换:RDD.toDF("列名1","列名2") * 通过样例类反射转换:UserRDD.map{x=>U

2021-11-04 23:21:50 2319

原创 SparkSQL中自定义函数之UDAF

package com.huc.sparkSqlimport org.apache.spark.SparkConfimport org.apache.spark.sql.expressions.Aggregatorimport org.apache.spark.sql.{DataFrame, Encoder, Encoders, SparkSession, functions}object Test07_UDAF { def main(args: Array[String]): Unit =

2021-11-04 22:31:38 259

原创 SparkSQL中自定义函数之UDF

package com.huc.sparkSqlimport org.apache.spark.SparkConfimport org.apache.spark.sql.{DataFrame, SparkSession}object Test06_CustomUDF { def main(args: Array[String]): Unit = { // 1. 创建sparkSession配置对象 val conf: SparkConf = new SparkConf().se

2021-11-04 22:30:35 163

原创 SparkSQL数据的保存

package com.huc.sparkSqlimport org.apache.spark.{SPARK_BRANCH, SparkConf}import org.apache.spark.sql.{DataFrame, DataFrameReader, SaveMode, SparkSession}object Test10_Write { def main(args: Array[String]): Unit = { // 1. 创建sparkSession配置对象 v

2021-11-04 22:29:53 392

原创 SparkSQL数据的加载

package com.huc.sparkSqlimport org.apache.spark.SparkConfimport org.apache.spark.sql.{DataFrame, DataFrameReader, SparkSession}object Test09_Read { def main(args: Array[String]): Unit = { // 1. 创建sparkSession配置对象 val conf: SparkConf = new Sp

2021-11-04 22:29:20 160

原创 spark中使用Scala来写自定义分区器

自定义分区器HashPartitioner源码解读: /*class HashPartitioner(partitions: Int) extends Partitioner { // 传进来的分区个数必须是大于等于0的,不然它会报错 require(partitions >= 0, s"Number of partitions ($partitions) cannot be negative.") // 重写分区器的抽象方法 // 记录它有多少个分区 就是外面

2021-10-30 08:56:50 427

原创 combineByKey()转换结构后分区内和分区间操作

1)函数签名:def combineByKey[C](createCombiner: V => C,mergeValue: (C, V) => C,mergeCombiners: (C, C) =>C): RDD[(K, C)](1)createCombiner(转换数据的结构): combineByKey() 会遍历分区中的所有元素,因此每个元素的键要么还没有遇到过,要么就和之前的某个元素的键相同。如果这是一个新的元素,combineByKey()会使用一个叫作createCo

2021-10-30 08:56:09 164

原创 aggregateByKey()按照K处理分区内和分区间逻辑

需求:取出每个分区中相同key对应的最大值,然后相加代码实现package com.huc.Spark.KeyAndValueimport org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}object Test04_aggregateByKey { def main(args: Array[String]): Unit = { //1.创建SparkConf并设置App名称

2021-10-29 22:14:06 144

原创 foldByKey()分区内和分区间相同的aggregateByKey()

1)函数签名:def foldByKey(zeroValue:V)(func:(V,V)=>V):RDD[(K,V)]// 参数zoreValue:是一个初始化值,它可以是任意类型// 参数func:是一个函数,两个输入参数相同2)功能说明:aggregateByKey的简化操作,seqop和combop相同。即,分区内逻辑和分区间逻辑相同。3)需求:求相同Key的value和,最大值4)代码实现:package com.huc.Spark.KeyAndValueimport o

2021-10-29 22:13:39 153

原创 reduceByKey()按照Key聚合Value

1)函数签名def reduceByKey(func:(V,V)=>V):RDD[(K,V)]def reduceByKey(func:(V,V)=>V,numPartitions:Int):RDD[(K,V)]2)功能说明:该操作可以将RDD[K,V]中的元素按照相同的K对V进行聚合。其存在多种重载形式,还可以设置新RDD的分区数。3)需求说明:统计单词出现的次数4)代码实现package com.huc.Spark1.KeyAndValueimport org.apache

2021-10-29 22:13:03 445

原创 reduceByKey、foldByKey、aggregateByKey、combineByKey

老大:combineBykey有初始值,并且初始值还支持改变数据结构,最灵活combineByKeyWithClassTag(createCombiner, mergeValue, mergeCombiners, partitioner, mapSideCombine, serializer)(null)// 3.4 使用combinebykey求平均值 val list: List[(String, Int)] = List(("a", 88), ("b", 95), ("a"

2021-10-29 22:12:22 355

原创 distinct()去重

distinct算子1)函数签名def distinct():RDD[T] //默认情况下,distinct会生成与原RDD分区个数一致的分区数2)功能说明:对内部的元素去重,并将去重后的元素放到新的RDD中。3)源码解析:4)函数签名:def distinct(numPartitions:Int)(implicit ord:Ordering[T]=null):RDD[T]//可以去重后修改分区个数代码实现package com.huc.Spark.valueimport or

2021-10-29 14:51:00 587

原创 sample()采样

1)函数签名def sample( withReplacement:Boolean, faction:Double, seed:Long=Utils.random.nextLong):RDD[T]//withReplacement:true为有放回的抽样,false为无放回的抽样;//fraction表示:以指定的随机种子随机抽样出数量为fraction的数据;//seed表示:指定随机数生成器种子2)功能说明从大量的数据中采样3)需求说明:创建一个RDD(1-10),从中选择放

2021-10-29 14:50:35 392

原创 filter()过滤

1)函数签名def filter(f:T=>Boolean):RDD[T]2)功能说明接受一个返回值为布尔类型的函数作为参数。当某个RDD调用filter方法时,会对该RDD中的每一个元素应用f函数,如果返回值类型为true,则该元素会被添加到新的RDD中。3)需求说明:创建一个RDD,过滤出对2取余等于0的数据4)具体实现package com.huc.Spark.valueimport org.apache.spark.rdd.RDDimport org.apache.spar

2021-10-29 14:49:55 172

原创 groupBy()分组

groupBy算子1)函数签名def groupBy[K](f:T=>K)(implicit kt:ClassTag[K]):RDD[(K,Iterable[T])]2)功能说明分组,按照传入函数的返回值进行分组。将相同的key对应的值放入一个迭代器3)需求说明:创建一个RDD,按照元素模以2的值进行分组。4)具体实现:package com.huc.Spark.valueimport org.apache.spark.rdd.RDDimport org.apache.spark

2021-10-29 14:49:29 647

原创 Spark转换算子--golm()分区转换数组

1)函数签名:def glom():RDD[Array[T]]2)功能说明该操作将RDD中每一个分区变成一个数组,并放置在新的RDD中,数组中的元素的类型与原分区中的元素类型一致3)需求说明:创建一个2个分区的RDD,并将每个分区的数据放到一个数组,求出每个分区的最大值4)具体实现:package com.huc.Spark1.valueimport org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkCon

2021-10-29 14:48:21 623

原创 spark转换算子-flatMap()扁平化

1)函数签名:def flatMap[U:ClassTag](f:T=>TraversableOnce[U]):RDD[U]2)功能说明与map操作类似,将RDD中的每一个元素通过应用f函数依次转换为新的元素,并封装到RDD中。区别:在flatMap操作中,f函数的返回值是一个集合,并且会将每一个该集合中的元素拆分出来放到新的RDD中。3)需求操作:创建一个集合,集合里面存储的还是子集合,把所有子集合中数据取出放入到一个大的集合中。4)具体实现:package com.huc.Spar

2021-10-29 14:46:33 1195

原创 Scala WorldCount案例2(将集合中出现的相同的单词,进行计数,取计数排名前三的结果)

package com.huc.WordCountobject WordCount3 { def main(args: Array[String]): Unit = { // 原始数据 val tupleList = List(("Hello Scala Spark World ", 4), ("Hello Scala Spark ", 3), ("Hello Scala ", 2), ("Hello ", 1)) // 步骤一:转换为(单词,次数),(单词,次数)的格式

2021-10-26 21:30:02 365

原创 Scala WordCount案例1(将集合中出现的相同的单词,进行计数,取计数排名前三的结果)

package com.huc.WordCountobject WordCount1 { def main(args: Array[String]): Unit = { // 需求:将集合中出现的相同的单词,进行计数,取计数排名前三的结果 val stringList = List("Hello Scala Hbase kafka", "Hello Scala Hbase", "Hello Scala", "Hello") // 步骤一:扁平化拆分成长字符串 val

2021-10-26 21:29:19 443

原创 Java和Scala中的面向对象思想的区别

Java和Scala中的面向对象思想的区别Scala 的面向对象思想和Java的面向对象思想和概念是一致的。封装:**在Java当中,**先把属性写成私有的,然后给它添加get和set方法,把它封装起来,把属性和方法结合在一起就是封装了**在Scala当中,**属性底层就已经带有get和set方法了,只是它写出来不是get和set,它是用“ . ”点,的这种方式来给它实现的。如果想要它和Java的那些框架兼容的话,需要有明文的get和set方法,需要给它加注解,@BeanProperty,这就是Sc

2021-10-23 10:05:29 123

原创 Scala 初步使用,参数介绍

Scala 初步使用,参数介绍package com.huc.chapter01/** * 在Scala里面 * object(和Java里面的静态对应)里面所有的东西都是静态的,而class里面都不是静态的 * 在使用过程中,我们也不说它是静态的,而是给它取了个名字,叫伴生对象 */// 伴生对象的方法 如果没有伴生类对应,那就叫它单例对象(这玩意也可以直接运行)// 以后如果写一个main方法的话,它是静态的就写在Object里面// 不是静态的,就写在Class里面/

2021-10-22 15:01:42 146

原创 IDEA快捷键

IDEA快捷键1)快速生成程序入口:main输入main->回车def main(args: Array[String]): Unit = {}2)自动补全变量:.var输入1.var->回车val i: Int = 23)快速打印:.sout输入1.sout->回车println(1)4)快速生成for循环:遍历对象.for输入1 to 3.forfor (elem <- 1 to 3) {}3) 查看当前文件的结构:Ctrl +

2021-10-22 12:57:11 280

原创 Scala 中高阶函数的简单使用

Scala 中高阶函数的简单使用object Test01_HighFunc { def main(args: Array[String]): Unit = { // 对于一个函数,我们可以:定义函数,调用函数 def sayHi(name: String): String = { println(s"Hi $name") s"hi $name" } sayHi("linhai") // 但是其实函数还有更高阶的用法 // 1

2021-10-20 10:58:20 184

原创 计算机中int、byte值转换分析,原码补码分析

计算机中int、byte值转换分析,原码补码分析object Test07_TypeCast { def main(args: Array[String]): Unit = { // 将int值130强转为byte 值为多少 // 0000 0000 1000 0010 => 表示int的130 val i4 = 130 // 1000 0010 => 表示byte的130 /** * 个人理解: * 100

2021-10-20 08:39:55 136

原创 Scala 中函数至简原则的细节推断

Scala 中函数至简原则的细节推断object Test03_FuncSimply { def main(args: Array[String]): Unit = { def func(name: String): String = { println("func调用") return name } // 1.return是可以省略的,Scala会使用函数体的最后一行代码作为返回值 def func1(name: String): Stri

2021-10-20 08:35:28 100

原创 Scala 中函数的多种参数形式及可变参数

Scala 中函数的多种参数形式及可变参数object Test03_FuncArgs { def main(args: Array[String]): Unit = { //(1)可变参数 加一个*就可以了 def sayHi(names:String*):Unit = { println(s"hi $names") } sayHi() sayHi("linhai") sayHi("linhai","jinliang") //(

2021-10-20 08:32:48 815

原创 Scala 中各种类型函数的定义

Scala 中各种类型函数的定义object Test02_FunDefine { def main(args: Array[String]): Unit = { //(1)函数1:无参,无返回值 def sayHi() = { println("hi") } sayHi() //(2)函数2:无参,有返回值 def sayHi1():String = { println("hi") "linhai" }

2021-10-20 08:30:48 190

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除