![](https://img-blog.csdnimg.cn/20210701142843646.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
spark
文章平均质量分 80
为笔者spark实践和问题总结
扫地增
莫问,问就是无敌
展开
-
SparkSql报错——记java.io.IOException: Illegal type id 0. The valid range is 0 to -1报错
报错现象21/07/03 09:44:02 WARN scheduler.TaskSetManager: Lost task 40.0 in stage 1.0 (TID 101, bj00-a-080-024-bdy.iyunxiao.com, executor 2): java.io.IOException: Illegal type id 0. The valid range is 0 to -1 at org.apache.orc.OrcUtils.isValidTypeTree(OrcUtil原创 2021-07-05 12:04:16 · 1438 阅读 · 1 评论 -
HiveSql&SparkSql —— 使用left semi join做in、exists类型子查询优化
LEFT SEMI JOIN(左半连接)介绍SEMI JOIN (即等价于LEFT SEMI JOIN)最主要的使用场景就是解决EXISTS IN。LEFT SEMI JOIN(左半连接)是 IN/EXISTS 子查询的一种更高效的实现。LEFT SEMI JOIN虽然含有LEFT,但其实现效果等价于INNER JOIN,但是JOIN结果只取原左表中的列。优化实例实例表准备:CREATE TABLE test.user1( `id` bigint)ROW FORMAT DELIMITED原创 2021-06-07 14:25:37 · 2487 阅读 · 1 评论 -
Hql&SparkSql——正则关键字的使用(like、rlike、regexp、regexp_replace、regexp_extract)
文章目录简述正则的通配符简介正则表达式的符号及意义字符簇:各种操作符的运算优先级:Hql、SparkSql支持的正则关键字LIKERLIKEREGEXPREGEXP_REPLACEREGEXP_EXTRACT特别说明简述笔者在最近的工作中使用的较为频繁,特此做下总结,最近遇到的某些数据的值十分脏乱,用正则表达式的话会让语句显得特别精简,也可以用各种字符串截取函数嵌套处理(必须要有一定规律),总结一下经常用到的几个。正则的通配符简介正则表达式的符号及意义通配符意义\做为转义原创 2021-06-05 15:52:03 · 9517 阅读 · 1 评论 -
DataSkew —— 数据倾斜问题解析及解决方案实践总结小记
文章目录什么是数据倾斜数据倾斜的现象Hadoop中的数据倾斜Spark中的数据倾斜Hive中的数据倾斜数据倾斜产生的原因Hive数仓为何会出现DateSkewSpark为何会出现DateSkew数据倾斜的原因:数据分区的策略:定位数据倾斜问题查看数据倾斜的key的分布情况:数据倾斜产生的原理产生数据倾斜的操作不同情形倾斜数据处理方案Hql和SparkSql中处理Join小表join大表大表join大表skewjoin数据类型不匹配关联主键含有大量空key关联主键中少部分key的数据量巨大Join驱动表选取和原创 2021-06-05 12:56:31 · 1349 阅读 · 3 评论 -
HiveSql&SparkSql—COUNT(DISTINCT ) OVER (PARTITION BY )报错解决方案
背景:笔者在为公司搭建学生知识点画像时遇到了这种场景,在使用Spark DataFrame开发时,发现count(distinct user_id) over(partition by knowledge_id order by exam_time desc)时报错。如下:select count(distinct user_id) over(partition by knowledge_id order by exam_time desc)from exam_knowledge_detail原创 2021-05-27 18:37:34 · 5746 阅读 · 10 评论 -
spark - org.apache.hadoop.security.authentication.util.KerberosUtil.hasKerberosTicket报错解决小记
笔者遇到这个问题是在同事加入项目后,修改了pom.xml造成。直接上问题。报错笔者是在写完了UDAF进行本地测试的时候遇到。21/05/25 09:13:12 INFO SparkContext: Running Spark version 2.4.221/05/25 09:13:13 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes原创 2021-05-25 10:02:17 · 1343 阅读 · 3 评论 -
spark-sql COALESCE()函数解析用法——多字段优先级选择非空字段作为值
简介:很多人知道ISNULL函数,但是很少人知道Coalesce函数,人们会无意中使用到Coalesce函数,并且发现它比ISNULL更加强大,其实到目前为止,这个函数的确非常有用,其实使用CASE WHEN THEN ELSE END 或者IF(column1 IS NULL,column2,column1)本文主要讲解其中的一些基本使用:COALESCE()函数:主流数据库系统都支持COALESCE()函数,这个函数主要用来进行空值处理,其参数格式如下:COALESCE ( expression原创 2021-03-10 18:36:04 · 5842 阅读 · 4 评论 -
spark executor的个数和并行任务的个数优化 spark优化
spark executor的个数和并行任务的个数合理的core,memory比例以及并行度是能显著提升spark执行效率。也是spark优化的一个重点spark executor 数量指定spark executor 数量的公式executor_num = spark.cores.max/spark.executor.cores参数说明:spark.cores.max 是指你的spark程序需要的总核数spark.executor.cores 是指每个executor需要的核数.原创 2020-10-07 16:44:42 · 4530 阅读 · 3 评论 -
spark任务shuffle溢出报错处理: Missing an output location for shuffle 0
执行数据量较大的spark任务时经常会出现MetadataFetchFailedException:org.apache.spark.shuffle.MetadataFetchFailedException: Missing an output location for shuffle 10at org.apache.spark.MapOutputTracker$$anonfun$convertMapStatuses$2.apply(MapOutputTracker.scala:867)at org原创 2020-09-16 09:43:24 · 3254 阅读 · 1 评论 -
SPARK-SQL内置时间日期类函数
一、获取当前时间1.current_date获取当前日期2018-04-092.current_timestamp/now()获取当前时间2018-04-09 15:20:49.247二、从日期时间中提取字段1.year,month,day/dayofmonth,hour,minute,secondExamples:SELECT day(‘2009-07-30’);302.dayofweek (1 = Sunday, 2 = Monday, …, 7 = Saturday),dayo原创 2020-09-22 18:50:36 · 1908 阅读 · 1 评论