
Spark
ZhuangYQ丶
大佬饶命
展开
-
hive中的json串和map结构的取数区别
hive中的json串和map结构的取数区别hive中如果定义的是json串,那么取数据用这种处理: get_json_object(params,'$.user_id')如果是map<string,string>结构,那么取数据这样处理params['user_id']那么我们想要统一将json串转成map结构,便于取数方便。这种怎么处理?第一种方式就是暴力的解析字符串,用正则的方式匹配:select pt_day, uid,point, str_t原创 2021-01-15 17:34:16 · 4361 阅读 · 2 评论 -
spark-sql中字段为bigint类型,但是查询用的字符串产生的bug
在一次工作实践中,记录了一次我的失误和坑。首先我这个字段为bigint 类型。但是我查询的时候 让该字段='123124565434567897654’这种类似的方法查询,发现查询的数据是有问题的。发现查出来两条,但是前半部分是正常匹配的,只是后面的部分匹配有问题。后来发现字段类型不匹配,用explain打印出来,发现两边都转成了double,才会导致这个问题。统一一下字段类型之后数据就是正常的了。详细的问题就是隐式转换的问题了。具体解释:bigint和string比较时会隐式地都转换成do原创 2020-12-19 23:00:07 · 3536 阅读 · 1 评论 -
记录 2020-11-18 23点
大数据学习进步有很长时间没有更新博客了,原因是公司很多限制,还有就是大多数都写在公司的文档里面了。还有一个重要原因,太懒了 。。。。。。。。。。。痛定思痛,决定学习不能落下,更新博客也不能落下,所以决定至少双周一次学习和记录,对一些详细的知识点包括底层的源码进行一定的分析和学习okr制定:每双周一次技术更新!!!...原创 2020-11-18 23:26:38 · 185 阅读 · 3 评论 -
spark学习进步之广播变量的用法(broadcast)
原理:问题点1、参数设置: spark.sql.adaptive.join.enabled AE 相关,开启后能够根据数据量自动判断能否将 sortMergeJoin 转换成 broadcast join true spark.sql.broadcastTimeout broadcast joins 时,广播数据最长等待时间,网络不稳定时,容易出现超时造成任务失败,可适当增大此参数 .原创 2020-05-17 22:05:29 · 1859 阅读 · 0 评论 -
hive读取json数组并转换成多行(列转行)
背景:在读取hive表中某一些字段的时候,有的json字符串其中会包括数组,那么想要读取这个数组并且转换为多行该怎么操作那?操作:1、数据举例:["[{\"pet_skill_avg_level\":0,\"pet_guard_star\":0,\"pet_type\":0,\"pet_step\":0,\"pet_skill_num\":0,\"pet_adv_score\":0,\"p...原创 2020-03-03 17:17:49 · 5343 阅读 · 0 评论 -
Hive表建立分区外部表并且添加每天的增量数据为分区
一、数据仓库建设过程中,我们都有每天的增量数据进来,我们需要把增量数据映射到我们的hive表中,但是为了数据能够被其他部门共同使用,并且需要对我们的原始数据进行综合管理,在数据仓库建设的第一层,我们就要使用外部表进行处理。(外部表和内部表的区别自行查资料)二、介绍一下怎么从外部的一个文件怎么映射成外部表并且分区,并且数据不会move到hive的相关目录下面。1、将文件(text...原创 2019-08-08 15:07:16 · 1503 阅读 · 0 评论 -
Hive 行转列、列转行
在Hive中使用Hive sql实现表 数据的行转列、列转行:原始数据:行转列:select ss.id,ss.name,s1 from test_sql sslateral view explode(split(ss.address,',')) aa as s1列转行:select sss.id,sss.name,concat_ws(',',collect...原创 2019-07-30 16:45:58 · 258 阅读 · 1 评论 -
Spark Sql 处理groupby 的数据倾斜问题
写sql处理使用groupby 产生的数据倾斜问题:import java.util.Randomimport org.apache.spark.sql.SparkSessionobject TestUDF { def main(args: Array[String]): Unit = { val spark = SparkSession.builder()...原创 2019-07-29 21:12:26 · 1580 阅读 · 0 评论 -
Spark Core中解决group by造成的数据倾斜问题
在大数据开发中,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能。该篇博客参考美团的spark高级版,修改了代码使用了scala写的。 这个方案的核心实现思路就是进行两阶段聚合。第一次是局部聚合,先给每个key都打上一个随机数,比如...原创 2019-07-29 20:54:01 · 1536 阅读 · 0 评论 -
Spark和MR对比
MR的迭代:Spark中的迭代:1、spark把运算的中间数据存放在内存,迭代计算效率更高;mapreduce的中间结果需要落地,需要保存到磁盘,这样必然会有磁盘io操做,影响性能。2、spark容错性高,它通过弹性分布式数据集RDD来实现高效容错,RDD是一组分布式的存储在节点内存中的只读性质的数据集,这些集合是弹性的,某一部分丢失或者出错,可以通过整个数据集的计算流程的血...原创 2019-06-14 11:01:40 · 1614 阅读 · 0 评论 -
Spark-wordcount案例
def main(args: Array[String]): Unit = { //创建一个配置信息对象 //设置应用程序名称 val config:SparkConf = new SparkConf().setAppName("scala_worldcount") //设置运行模式 /* * local:使用本地一个线程模拟集群执行任...原创 2019-06-14 10:46:12 · 183 阅读 · 0 评论 -
数仓项目中azkaban的工作错误总结!
一、写成的sql文件提交到azkaban中,进行任务调度:博客中有对azkaban的学习,可以看一下,这里主要记录一下azkaban的坑1、调度文件:*.job,这个文件以.job结尾,其中,格式是这样的:---config: #failure.emails: xx@xxnodes: - name: dm_release_customer_cube_sql_job...原创 2019-06-18 21:44:50 · 1016 阅读 · 0 评论