大数据赵轩
码龄7年
关注
提问 私信
  • 博客:8,756
    动态:44
    8,800
    总访问量
  • 28
    原创
  • 2,344,461
    排名
  • 4
    粉丝
  • 0
    铁粉

个人简介:热爱学习,顺便敲代码

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2017-12-27
博客简介:

qq_41549462的博客

查看详细资料
个人成就
  • 获得16次点赞
  • 内容获得3次评论
  • 获得15次收藏
创作历程
  • 28篇
    2021年
成就勋章
TA的专栏
  • Spark
    10篇
  • Scala
    2篇
  • Hive
    17篇
  • 大数据
兴趣领域 设置
  • 大数据
    hbasehadoophivesparkelasticsearchkafkaflink大数据数据仓库
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

1、coalesce算子: def coalesce(分区个数 :Int , 是否走shuffle :Boolean = false) : RDD[T] 2、coalesce算子功能: coalesce算子一般用来合并分区(即减少分区个数,解决小文件分区过多问题),第二个参数决定是否走shuffle,默认是false;需要注意的是当需要增加分区个数时,必须将第二个参数设置为true才能实现

发布动态 2021.05.08

Value类型-coalesce()合并分区

Value类型-coalesce()合并分区1、coalesce算子:def coalesce(分区个数 :Int , 是否走shuffle :Boolean = false) : RDD[T]2、coalesce算子功能:coalesce算子一般用来合并分区(即减少分区个数,解决小文件分区过多问题),第二个参数决定是否走shuffle,默认是false;需要注意的是当需要增加分区个数时,必须将第二个参数设置为true才能实现3、例子:4个分区合并为2个分区1. package com.zh
原创
发布博客 2021.05.08 ·
244 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Value类型-GroupBy之WordCount

Value类型-GroupBy之WordCount1、lambda表达式写法package com.zhaoxuan.scalatestimport org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}/** * 2.3.1.8 Value类型-GroupBy之WordCount * */object WordCountgroupBy { def main(args: Array[Str
原创
发布博客 2021.05.08 ·
319 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

groupBy()算子函数签名: def groupBy(f : T =>K]) : RDD[K, Iterable[T]] 2、算子·功能: 1、将原来RDD中的元素按照groupBy中的函数f的执行结果进行分组 2、结果相同的元素进入同一个迭代器 3、groupBy算子存在shuffle 4、shuffle会落盘,元素会在不同分区中乱窜

发布动态 2021.05.07

Value类型-groupBy()分组

Value类型-groupBy()分组1、groupBy()算子函数签名:def groupBy(f : T =>K]) : RDD[K, Iterable[T]]2、算子·功能:1、将原来RDD中的元素按照groupBy中的函数f的执行结果进行分组2、结果相同的元素进入同一个迭代器3、groupBy算子存在shuffle4、shuffle会落盘,元素会在不同分区中乱窜3、例子1:将偶数、奇数分别分组1. package com.zhaoxuan.scalatest 2.
原创
发布博客 2021.05.07 ·
634 阅读 ·
1 点赞 ·
1 评论 ·
1 收藏

Value类型-glom()分区转换数组

Value类型-glom()分区转换数组1、函数签名def glom() : RDD[Array[T]]2、函数功能1、将原来RDD中的每个分区转换成一个数组2、将这些数组放到新的RDD中3、数组中的元素类型与原分区中的元素类型一致,不会改变3、例子:求出RDD中每个分区的最大值,并将最大值相加1. package com.zhaoxuan.scalatest 2. 3.import org.apache.spark.rdd.RDD 4.import org.apache.s
原创
发布博客 2021.05.07 ·
361 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

记录一下今天遇到的Spark中的一个小技术点 Value类型-mapPartitionsWithIndex()带分区号 1、格式:mapPartitionsWithIndex(index:Int,f : Iterator[T] => Iterator[U] , pP : Boolean = false) : RDD[U] 2、功能:最前面多一个参数代表分区号,将原来RDD中的元素以分区为Iterator依次进入f函数,可以操作,使得输出结果加上分区号,方便看RDD内数据元素的分区 2、例子:创建一个RDD,使之带分区号输出 1.   package com.zhaoxuan.scalatest   2.   3.import org.apache.spark.rdd.RDD   4.import org.apache.spark.{SparkConf, SparkContext}   5.   6./**   7.  * 3、例子:创建一个RDD,使之带分区号输出   8.  * */   9.object MapPartitionsWithIndex {   10.  def main(args: Array[String]): Unit = {   11.    val conf :SparkConf = new SparkConf().setAppName("mapPartitionsWithIndex-Test").setMaster("local[*]")   12.    val sc : SparkContext= new SparkContext(conf)   13.    val rdd1 : RDD[Int] = sc.makeRDD(1 to 6,2)   14.    val rdd2 :RDD[(Int,Int)]= rdd1.mapPartitionsWithIndex((index,nums) => (nums.map((n) => (index,n))))   15.    rdd2.collect().foreach(println)   16.  }   17.}  

发布动态 2021.04.23

Value类型-mapPartitionsWithIndex()带分区号

Value类型-mapPartitionsWithIndex()带分区号1、格式:mapPartitionsWithIndex(index:Int,f : Iterator[T] => Iterator[U] , pP : Boolean = false) : RDD[U]2、功能:最前面多一个参数代表分区号,将原来RDD中的元素以分区为Iterator依次进入f函数,可以操作,使得输出结果加上分区号,方便看RDD内数据元素的分区2、例子:创建一个RDD,使之带分区号输出1. packag
原创
发布博客 2021.04.23 ·
633 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Value类型-map()和mapPartitions()区别

2.3.1.3 Value类型-map()和mapPartitions()区别1、map算子:原来RDD中的元素遍历,然后依次进入map算子中的f函数,这些元素形成新的RDD2、mapPartitions算子:原来RDD中的元素,按照分区打包成Iterator迭代器,按批次依次进入mapPartitions算子中的f函数,在f函数内部需要手动写逻辑遍历Iterator中的元素并做操作后形成Iterator出来,最后形成新的RDD3、map算子每次处理RDD中的一个元素,处理完一个元素便释放内存;map
原创
发布博客 2021.04.23 ·
179 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

2.3.1.2 Value类型-mapPartitions()以分区为单位执行Map

2.3.1.2 Value类型-mapPartitions()以分区为单位执行Map----------------转载放原连接,违权必究--------------------------1、格式:mapPartitions(f : Iterator[T]=> Iterator[U],pP:Boolean = false) : RDD[U]2、功能:1、原来RDD中的元素按照一个分区为一个Iterator,遍历分区2、每个分区数据(Iterator)依次按批次进入mapPartitio
原创
发布博客 2021.04.23 ·
149 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

2.3.1.1 Value类型-map()映射

2.3.1.1 Value类型-map()映射1、格式map算子:map(f :T => U) :RDD[U]2、功能:1、原来RDD调用map算子时,会遍历原来RDD中的元素2、原来RDD中的元素会依次通过map算子中实参函数f3、最终原来RDD中的所有元素通过map算子中实参函数f后会形成一个新的RDD4、新的RDD和原来RDD中元素的分区不会改变(即不会shuffle,不会落盘);元素类型可能会改变(如Int元素在f中发生字符串拼接)3、例子:将原来RDD中的元素扩大2倍1.
原创
发布博客 2021.04.23 ·
168 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

2.1 RDD的创建 创建RDD的三种方式 1、从集合中创建RDD 2、从外部存储文件创建RDD 3、从其他RDD创建RDD

发布动态 2021.04.21

2.1.2 RDD的创建-从集合中创建

2.1.2 RDD的创建-从集合中创建1、创建RDD有两个函数:parallelize()和makeRDD()【常用】2、代码步骤://2.1创建Spark配置文件val conf :SparkConf = new SparkConf().setAppName(“自定义App名字”).setMaster(“local[核心个数]”)//2.2创建SparkContext对象(sc)val sc :SparkContext = new SparkContext(conf)//2.3从集合中创建R
原创
发布博客 2021.04.21 ·
174 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2.1.3 RDD的创建-从外部存储系统的数据集创建

2.1.3 RDD的创建-从外部存储系统的数据集创建1、从外部文件创建RDD,外部文件可以是:本地文件,支持Hadoop的文件系统(如Hbase,HDFS等)2、准备外部数据(HDFS上面的话,需要有准确的目录及文件路径)def main(args :Array[String]) :Unit = {val conf :SparkConf = new SparkConf().setAppName(“自定义App名字”).setMaster(“local[*]”)val sc :SparkConte
原创
发布博客 2021.04.21 ·
600 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

4.7 删除表

4.7 删除表1、方法drop table if exists 表名;2、说明:管理表(内部表)既能删除Hive上的元数据,也能删除HDFS上的数据;外部表只能删除Hive上的元数据,不能删除HDFS上的数据
原创
发布博客 2021.04.19 ·
122 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

4.6.1 重命名表

4.6.1 重命名表1、方法:alter table 原表名 rename to 新表名;4.6.3 增加/修改/替换列信息1、改变列alter table 表名 change column 老列名 新列名 新数据类型first或者after 列名;【增加列到当前表列首或者增加列到某列之后】改变类时,新的数据类型范围必须大于或等于原来数据类型2、增加列alter table 表名 add columns(列名
原创
发布博客 2021.04.19 ·
238 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

4.5.3 管理表与外部表的互相转换

4.5.3 管理表与外部表的互相转换1、查看表类型desc formatted 表名;2、内部表转为外部表alter table 表名 set tblproperties(‘EXTERNAL’=’TRUE’);3、外部表转为内部表alter table 表名 set tblproperties(‘EXTERNAL’=’FALSE’);4、注意事项:‘EXTERNAL’=’TRUE’/’EXTERNAL’=’FALSE’必须全大写...
原创
发布博客 2021.04.15 ·
136 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

4.5.2 外部表

4.5.2 外部表1、外部表概念:Hive不能掌握外部表的生命周期,即如果在Hive中删除外部表,那么在该表在Hive中的元数据会被删除,但是在HDFS上的数据并不会被删除2、外部表与管理表(内部表)的应用场景定期将网络日志创建为外部表,将中间表和计算表设置为内部表(管理表)(方法即insert into 导入数据)3、健壮性创建create external table if not exists 表名(列名 数据类型,列名 数据类型,列名 数据
原创
发布博客 2021.04.15 ·
378 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

4.5.1 管理表

4.5.1 管理表1、管理表概念:用create table 表名创建的表都是管理表(也称为内部表)Hive掌握着管理表的生命周期,即如果删除了管理表(内部表),则管理表在Hive上的 元数据和在HDFS上的数据都会被删除管理表的数据的存储位置在HDFS上,于配置文件($HIVE_HOME/conf下新建的hive-site.xml文件中)中的参数(hive.metastore.warehouse.dir)中设定,如在HDFS上的/user/hive/warehouse/数据库名.db下管理表
原创
发布博客 2021.04.13 ·
199 阅读 ·
1 点赞 ·
1 评论 ·
1 收藏

4.5 创建表

4.5 创建表1、语法CREATE [EXTERNAL] TABLE [IF NOT EXISTS] 表名(列名 数据类型 [COMMENT ‘该列注释信息’],列名 数据类型,列名 数据类型,。。。。。。)[ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘分隔符’][COLLECTION ITEMS TERMINATED BY ‘分隔符’][MAP KEYS TERMINA
原创
发布博客 2021.04.13 ·
118 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多