- 博客(66)
- 问答 (2)
- 收藏
- 关注
原创 Spark Sql之扁平化嵌套结构列
因为有她,所有我要走的更远,更久前言:之前的博客中也有一些关于嵌套列的讲解。不过当时的嵌套列普遍只嵌套了一列。但是解决的做法是什么?数据集中含有一层嵌套列,通过StructType创建schema映射。创建dataFrame的时候将数据集和schema字段映射一起创建。就是上面的流程,不过在创建schema字段映射的时候,对于之前的嵌套字段,也仅仅只是多了一个new StructType().add就可以将嵌套的一级字段...
2022-03-10 22:16:37 3236 4
原创 Spark Sql中的Map和flatMap
和她在一起的每一天都很快乐map() 将一个函数应用于DataFrame和DataSet中的每一行并返回新的转换后的DataSet。并不会返回DataFrame,返回的是DataSet[类型].flatMap()在对每个元素应用函数之后,flatMap会将数据转换成数据帧/数据集展平,并且返回一个新的数据集。关键点1.map()和flatMap()返回的都是DataSet(DataFrame=DataSet[Row])2...
2022-03-08 22:23:24 7054 4
原创 Spark Sql中的group by语句
每天都在和你在一起Spark Group By函数将相同的数据收集到DataFrame/DataSet上的组,并对分组后的数据执行聚合函数。count() 返回每个组的行数 mean() 返回每个组的平均值 max() 返回每个组的最大值 min() 返回每个组的最小值 sum() 返回每个组的值的总计 avg() 返回每个组的平均值使用agg函数,可以一次进行多次聚合运算创建DataFrameval data = Seq(("Ja...
2022-03-07 22:08:19 5702
原创 Spark SQL中collect对数据的检索
每天都在努力的我,每天都在努力的你,总有一天我们会相见Spark collect和collectAsList是用于将RDD/DataFrame/DataSet的所有元素检索到驱动程序节点的操作。如果数据集较大,使用collect之后可能会导致内存不足val data = Seq(Row(Row("James","","Smith"),"36636","M",3000), Row(Row("Michael","Rose",""),"40288","M",4000), Ro...
2022-03-06 18:05:50 2298
原创 Spark Sql对列的操作
SQL写得好,工作随便找本篇博客讲的是关于Spark SQL中对于列的操作。在SQL中对列的操作有起别名,转化类型等在Spark SQL中同样也支持,下面来看一看把Spark withColumn()语法和用法withColumn用于操作DataFrame上所有行或选定行的列值withCplumn执行之后,会产生一个新的DataFrametips:如果用withColumn同时更新多个列的情况下,可能会有性能问题...
2022-03-01 15:27:11 5766 2
原创 快学Scala之Map集
学习是个反人类的过程列表:列表和数组一样,都有不可变长的和可变长的。列表中的一些apiisEmpty 判断列表是否为空 ++ 拼接两个列表 head 获取列表的首个元素 tail 获取除列表的收个元素外的其他元素 reverse 对列表进行反转 take 获取列表的前缀元素 返回一个新的列表 drop 获取列表的后缀元素扁平化(flatten)扁平化就是将嵌套列表中的所有具体元素单独的放在一个新列表中...
2022-01-30 13:52:11 954
原创 快学Scala(数组和元组)
快要过年了呀,大家冲冲冲数组在Scala中数组下标是从0开始的。定长数组的特点长度不允许改变数组的内容可以改变通过指定长度定义数组val 变量名 = new Array[元素类型](数组长度)通过指定元素定义数组val 变量名 = Array(元素1,元素2,元素3)变长数组:数组的长度和内容是可变的,可以往数组中添加和减少元素创建空的ArrayBuf...
2022-01-29 20:00:05 949
原创 Spark追妻系列(RDD编程)
不问你为何流眼泪,再多的苦,我也愿意背RDD编程上文说到创建RDD有两种方式,读取外部文件value = sc.textFile()2.读取数据集合value = sc.makeRDD(List(1,2,3,4)) value = sc.parallelize(List(1,2,3,4))通过上面两种方式就可以创建RDD。RDD的转换操作RDD的转换操作是返回新的RDD的操作,RDD转换算子是惰性的,在只有行...
2022-01-29 13:06:43 862
原创 Spark追妻系列(Spark初了解)
感觉每天又有了希望,又有动力,感觉学习尽头十足Spark是什么Spark是一个用来实现快速而通用的集群计算的平台。在之前,学习了MR,学习了hadoop,用mapreduce来对数据进行处理,但是hadoop是用批处理的,而且还有延迟,况且,出来了Hive,Hive将sql转化为mr算子。可以不用去写mr代码就可以对数据进行分析。Spark是集群计算,是在hadoop集群中进行的,Spark的一个主要特点就是能够在内存中进行计算,在内存中计...
2022-01-28 20:12:59 937 5
原创 离线数仓之业务数据的导入和处理
讲的好不好不知道,尽最大努力去讲数据的同步上篇讲过使用Sqoop将Mysql和Hdfs的数据进行互导。本篇是离线数仓的第二篇。讲的是业务数据的处理。离线数仓基本业务数据都存储在Mysql中,然后再将Mysql中的数据通过Sqoop进行数据传输到Hdfs上面。在Hive里面创建相应的表,加载对应目录的数据到Hive表中。这仅仅只是ODS层的操作。ODS层的数据基本上都是源数据,没有经...
2022-01-27 20:53:18 1584
原创 快学Scala系列(条件语句和循环语句)
本篇是快学Scala的第二篇,讲的是条件语句流程控制和我们学习完Java一样,学习完基本的变量之后就要开始学习条件语句。本篇博客将讲解条件语句和循环语句。顺序结构所谓的顺序结构,Scala和Java是一样的,都是按照从上到下,从左到右的顺序,依次执行,中间没有任何执行和跳转先来一个大家习以为常的普通代码,这就是顺序结构那么所谓的从左往右的顺序是什么?这条语句的结果就是 20我爱...
2022-01-25 20:28:50 658
原创 快学Scala第一天
以前都是只学习Hive和数仓的基本知识,却忘记了数仓的另一个重要的利器Spark.工欲善其事必先利其器,为了学好spark,我们先要学习好scalaScala中的常量:学习scala也是为了我们日后学习spark打好基础,今天开始就跟着我来学习scala吧。scala中的常量:整型,浮点型,字符串型,布尔,空//输出整形 print(2)//输出字符串类型 print("i love you") //输出字符类型 print('a') //输...
2022-01-25 12:59:04 346
原创 Hive的表连接之讲了一半累了不讲了
事情糟糟,感觉自己没有处理好连接模式:Hive中根据数据连接发生的地方将连接模式分为两种。第一种是Repartition连接,发生在Shuffle和Reduce阶段,我们一般上说的表连接指的是Repartition连接。另外一种连接是Map join.就是所谓的大表Join小标普通的表连接Map的任务读取A,B两个表的数据,按照连接条件发往相同的Reduce。并在Reduce中计算结果。什么是普通的...
2022-01-21 20:22:32 438
原创 HIve的聚合模式室友不知道,我学会了给他们讲
只要我以为,这不是误会,谁会是宝贝小谈:今天没有摆烂,今天大早上起来在学校用土豆做的服务器上面选课,说实话奥,分批次选课,顶多不到8000多人、就卡的不得了,咱Java学的不精,看到各个微信公众号推送的高并发变成广告,建议学校的领导去学学高并发。而且也不是同时在线八千人。估计顶多两三千人,最多四五千人把。我的评价是不如原神Hive中的聚合模式什么是聚合?聚合就是将多行的数据缩减成一行或者是少数几行的计算模式。其实在我们刚开始学习mr的时...
2022-01-21 13:11:02 905
原创 Hive中的Distribute by 搭配sort by
今天不学习,明天不学习,后天就习惯不学习了小谈:上次讲了sort by和order by的区别,order by 进行全局排序,此时的reduce只有1个。sort by分情况。情况一:一个reduce。相当于order by 会进行全局排序,因为全局就只有那一个reduce情况二:多个reduce。sort by 会在多个reduce里面。对每一个reduce进行内部的排序。就是每个re...
2022-01-19 12:30:24 1122
空空如也
dpark sql中关于where条件不能显示出来结果
2022-03-10
关于Spark中StructType的时候,createDataFrame报错
2022-02-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人