自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spark四种聚合算子的区别

reduceByKey: 相同 key 的第一个数据不进行任何计算,分区内和分区间计算规则相同foldByKey: 相同 key 的第一个数据和初始值进行分区内计算,分区内和分区间计算规则相同aggregateByKey:相同 key 的第一个数据和初始值进行分区内计算,分区内和分区间计算规则可以不相同combineByKey:当计算时,发现数据结构不满足要求时,可以让第一个数据转换结构。分区内和分区间计算规则不相同。案例:def main(args: Array[String]): Unit =

2021-09-07 11:29:15 402

原创 Spark RDD转换算子-Key-Value类型总结(2)

一、combineByKey最通用的对 key-value 型 rdd 进行聚集操作的聚集函数(aggregation function)。类似于aggregate(),combineByKey()允许用户返回值的类型与输入不一致。combineByKey:需要三个参数第一个参数表示:将相同Key的第一个数据进行结构转换,实现操作,如:v=>(v,1)第二个参数表示:分区内的计算规则第三个参数表示:分区间的计算规则例子:def main(args: Array[String]): Uni

2021-09-04 11:27:56 309

原创 Spark RDD转换算子-Key-Value类型总结(1)

一、partitionBy算子将数据按照指定 Partitioner 重新进行分区。Spark 默认的分区器是 HashPartitioner例子: def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("local[*]").setAppName("Operator") val sc = new SparkContext(sparkConf) val rdd =

2021-08-31 12:10:35 600

原创 Spark RDD转换算子-双Value类型总结

一、intersection对源 RDD 和参数 RDD 求交集后返回一个新的 RDD交集intersection要求两个数据源数据类型保持一致例子:def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("local[*]").setAppName("Operator") val sc = new SparkContext(sparkConf) val rdd1

2021-08-29 18:10:59 242

原创 Spark RDD转换算子-Value类型总结(2)

一、groupBy将数据根据指定的规则进行分组, 分区默认不变,但是数据会被打乱重新组合,我们将这样的操作称之为 shuffle。极限情况下,数据可能被分在同一个分区中,一个组的数据在一个分区中,但是并不是说一个分区中只有一个组。例子:将奇数偶数分为两组def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("local[*]").setAppName("Operator")

2021-08-26 21:51:36 174

原创 Spark RDD转换算子-Value类型总结(1)

一、map算子将处理的数据源的数据逐条进行映射转换,这里的转换可以是类型的转换,也可以是值的转换。map的参数为一个函数。在map转换后,分区是不变的。例子:将每个分区的数据都乘以2def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("local[*]").setAppName("Operator") val sc = new SparkContext(sparkConf)

2021-08-22 16:09:40 335

原创 Windows系统下启动spark出错问题解决方法

一、报错异常问题一:在执行spark-shell时报错,提示java路径问题问题二:执行spark/bin目录下的spark-shell.cmd闪退二、解决方法首先要保证spark路径上没有中文和空格。遇到问题一在执行spark-shell时报错,提示java路径问题时,先确认JAVA_HOME的路径中是否有中文与空格,将环境变量修改正确重试即可。遇到问题二在执行spark/bin目录下的spark-shell.cmd后闪退,可以尝试使用管理员身份运行启动成功!...

2021-08-19 11:28:09 3329 2

原创 Scala中的Option类型的作用与使用方法

一、Scala中的Option类型的作用Scala中的Option类型是为了让所有东西都是对象的目标更加一致,也为了遵循函数式编程的习惯,scala鼓励你在变量和函数返回值可能不会引用任何值的时候使用Option类型。在没有值的时候,使用None,它是Option的一个子类;在有值的时候,就用Some来包含这个值,它也是Option的一个子类。二、Scala中Option类型的用法Scala Option(选项)类型用来表示一个值是可选的(有值或无值)。Option[T] 是一个类型为 T 的可选值

2021-08-18 13:15:00 3220 1

原创 使用Hive查询第n高的数据

一、题目现在有“学生成绩表”,记录了学生选修课程的名称以及成绩。现在需要找出语文课中成绩第n高的学生成绩。如果不存在第n高成绩的学生,那么查询应返回 null。二、学生成绩表的建立及数据导入#学生成绩表建立create table student_score(sno varchar(5),cname varchar(10),score int) row format delimited fields terminated by ',';#数据导入load data local inpath '

2021-08-13 16:51:35 608

原创 在hadoop3.1.3使用Flume上传日志文件至hdfs时出错解决方法

问题一:在hadoop3.1.3上使用Flume上传日志文件至hdfs时有可能会出现错误如下图:该错误的原因是flume中的guava-11.0.2.jar版本较低。解决方法是:删除flume中的对应的低版本guava-11.0.2.jar再将hadoop3.1.3中对应的高版本拷贝到flume中,高版本guava在hadoop3.1.3/share/hadoop/common/lib下的guava-27.0-jre.jar。问题二:开启flume后,无法在hdfs创建文件夹并上传日志。这种

2021-08-03 09:32:03 1094 1

原创 基于hive的SQL排名函数详解

前言在hive的学习中接触到了三种很实用的排名函数,这些函数在Mysql8.0版本中也已存在,分别是:Rank(),Dense_rank(),Row_number(),虽然都是排名函数,但三者间的些许差异很容易让人搞混,在这篇文章中,我将基于hive结合一个学生成绩排名的例子来对这三种排名函数进行解释与辨析。一、学生成绩表准备进行学生表的创建以及样例数据的导入create table stu(sno varchar(5),score int) row format delimited field

2021-07-28 11:46:28 2370

空空如也

空空如也

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

TA关注的人

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