自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 SparkSQL相关知识点和使用示例

其中从Spark2.0开始:DataFrame 每一行的类型固定为RowDataset 每一行的类型都是一个case class。

2023-07-30 11:46:26 310

原创 Hive相关参数设置

【代码】Hive相关参数设置。

2023-04-25 20:52:05 323

原创 程序开发规范例子

【代码】程序开发规范例子。

2023-04-15 16:43:04 180

原创 hive中处理数据倾斜

1.count(distinct)当某key的值过多时,处理此key的reduce非常耗时,因为只有一个reduce任务解决办法:将值为空的情况单独处理,如过滤空值的行,在最后结果中加12.不同类型关联产生数据倾斜如int类型和string类型做join操作时,reduce非常耗时,只有一个reduce解决办法:把int类型转换成string类型3.开启数据倾斜负载均衡set hive.groupby.skewindata=true处理过程:生成两个MRJob,先随机分发处理,再通过key

2022-05-12 22:12:13 359

原创 SQL优化

1.参数是子查询时,使用EXISTS代替IN有子查询时exists的速度更快一些,如下:以上两张表数据量都为百万级,sid字段为索引字段,使用not in耗时1分44秒,而使用not exists只耗时15秒,时间差异显著当连接列上建了索引,使用exists只需要查索引,不需要扫描整张表2.避免排序会进行排序的子句group byorder by聚合函数(sum,count,avg,max,min)distinct集合运算符(union,ntersect,except)2.1

2022-05-12 21:33:37 461

原创 SQL执行报错实例及原因解析

mysql执行sql:update t1 set a=(select b-c from t1);报错:“ERROR 1093 (HY000) at line 15:You can’t specify target table ‘t1’ for update in from clause”报错原因:对于同一个表的select和update不能出现在同一语句中修改sql:update t1 set a=(select b-c from (select b,c from t1 ) tmp);..

2022-04-27 20:46:22 1497

原创 Mysql常用函数介绍

1.字符字节长度--获取字节长度 length 获取字符长度 char_lengthlength("张三") 4char_length("张三") 2length("zs") 2char_length("zs") 22.字段字符截取函数--截取center字段中索引从1到','前一个位置的字符,若','位置为19,则截取1-18select substr(center,1,instr(center,',')-1) from test;--截取center字段中索引从

2022-01-27 15:52:08 1138

原创 实用的SQL语句

1.如果t1表id字段等于t2表id字段,则令t1表的center字段等于t2表的center字段update t1 set center=(select center from t2 where t1.id=t2.id )where t1.id in (select id from t2);2.删除表中有问题的记录:本来正确记录的字段值应该是1,2;33,22;11,222;可是有些记录的字段值却是1,2;5;33,22; 要把有;5;的记录删除了(1) 先查出有问题的记录--正常来讲,

2022-01-27 14:46:17 1343

原创 实用的shell脚本例子

#实用的shell脚本##1.按月导出mysql日表中的数据,导出后再删除天表#!/bin/bashmonth1=`date '+%Y%m' -d '-1 months'`monthfirst=`date '+%Y%m01'`month1last=`date -d "$monthfirst last day" +%d`i=1j=1##导出数据文件存放路径outdir=/data/mysql_export#遍历有日期后缀的表while [ $i -le $month1last ];do

2022-01-26 15:00:06 2925

原创 shell知识点总结

标准输入:控制台输入内容到变量name#!/bin/bashread nameecho $nameif 条件判断:如果$1 字符串长度为0即为空,则date=`date '+%Y%m%d'`,否则为date=$1if [ -z $1 ]thendate=`date '+%Y%m%d'`elsedate=$1fi如果文件存在且大小不为0为真if [ -s 文件名 ]如果文件存在if [ -e 文件名 ]如果两个字符串相同则为真if [string1 =stri...

2022-01-18 17:02:07 784

原创 linux 命令整理

1.grep用法搜索该文件夹下的文件内容grep -irl 关键字列出a.txt中所有的逗号,每个逗号一行grep -o ',' a.txt算出a.txt中逗号的个数grep -o ',' a.txt | wc -w查看文件中是否有.sh 忽略大小写cat a.txt | grep -i .sh查看文件中出现1808的行grep 1808 a.txt2.du命令查看当前文件夹下内容占用存储总大小,自动变更为kb mb Gbdu -sh查看当前文件夹下每个文件(或者文件夹)占....

2022-01-18 16:49:43 3202

原创 mysql存储过程相关

查看所有的存储过程show procedure status where Db='databasename';查看存储过程的创建过程show create procedure 存储过程名;案例1如果最大日期和第二大日期不等,则更新表字段:drop procedure p_name;delimiter $$create procedure p_name()begindeclare first_dt varchar(32);declare sencond_dt varchar

2022-01-18 16:39:38 551

原创 Hive常用函数介绍

1.instr搜索字符串中指定字符出现的位置,如果没有找到则返回0instr("abcd",'b')结果22.substrsubstr("abcdef",1,3) absubstr("abcdef",4)字符串截取函数,截取指定字符串的内容,若字符串后的参数个数为2,则截取1-3位置(初始位置为0)的字符串;若...

2022-01-18 16:35:49 1223

原创 易鲸捷数据库(EsgynDB)常用SQL

1.数据库连接trafci.sh -h 主机ip -u 用户名 -p 密码 <<EOFcqd attempt_esp_parallelism 'on';set schema 库名;--SQLcqd attempt_esp_parallelism 'off';exit;EOF2.表创建和截断create table if not exists 库名.t1(id varchar(32),name varchar(32))truncate table 库名.t

2022-01-09 15:54:42 888

原创 Hive使用中经常用到的SQL

1.表创建1.1方式1create table t1(org_id int,banner string,pv int,uv int)partitioned by(day_id string) ##分区row format delimited fields terminated by '\t'stored as textfile;1.2方式2create table t2 as select * from t1;1.3方式3create table t2 li

2022-01-09 15:25:17 943

原创 HDFS常用命令

1.删除文件hdfs dfs -rm filename2.删除文件夹hdfs dfs -rm -r filedir3.创建文件夹hdfs dfs -mkdir4.递归创建文件夹/文件hdfs dfs -mkdir -p5.查看目录下文件夹大小hdfs dfs -du -h /bonc_dg/6.查看目录资源使用率hdfs dfs -df -h /bonc_dg/7.查看hadoop版本命令hadoop version8.查看正在运行的hive进程h

2022-01-09 14:46:27 1128

原创 Mysql使用过程中经常用到的SQL

1.创建表1.1普通表create table if not exists center_point_tmp_fqw(id int(11) comment '全局唯一id',org_id varchar(20) default null comment '组织id',center_point mediumblob comment '中心点',primary key (id)) engine=innodb default charset=utf8;1.2主键字段自增表create

2021-10-15 17:58:20 161

原创 MapReduce中Shuffle的机制

Shuffle过程指的是MapTask的map方法之后,ReduceTask的reduce方法之前的数据处理过程,Shuffle过程是MR中最关键的一个流程;Shuffle过程包括Collect阶段,Spill阶段,两次Merge阶段,Copy阶段,Merge阶段以及Sort阶段,每阶段过程如下:...

2021-01-22 22:40:11 429

原创 HiveSQL语句中SELECT,FROM,WHERE,GROUP BY,LIMIT,ORDER BY的执行顺序

1.from2.where3.group by4.order by5.limit6.select

2021-01-22 22:31:04 1343 2

原创 Hive中sort by ,order by ,cluster by ,distribute by各代表什么意思

sort by 会在每个reduce中排序,全局无序,但是分区内有序 order by 对输入做全局排序,只有一个reduce,当输入规模较大时,消耗时间很大 distribute by 根据字段进行分区,类似MR中Partition,进行分区,结合sort by 使用 cluster by等价于distribute by sort by,排序只能是升序排序,无法指定排序规则...

2021-01-22 14:26:49 763

原创 HDFS如何保证数据安全性

HDFS是典型的Master/Slave架构,它往往是一个NameNode加多个DataNode组成,NamNode是集群的;且HDFS中分块存储的,为了容错文件,每个Block都会有副本 第一个副本一般放置在客户端所在的节点上(若客户端无DataNode,则随机放),第二个副本放置到与第一个副本同一机架的不同节点上,第三个副本放到不同机架的DataNode节点,当取用时遵循就近原则 DataNode已Block为单位,每3s报告心跳状态,若10min内不报告心跳状态则NameNode认为Block已死

2021-01-22 14:00:27 1526 1

原创 HDFS文件系统中,Fsimage和Edits的区别

相关概率Fsimage镜像文件:元数据的一个持久化检查点,包含Hadoop文件系统中的所有目录和文件元数据信息,但不包含文件块位置的信息。文件块位置信息只存储在内存中,是在DataNode加入集群的时候,NameNode询问DataNode得到的,并且间断的更新。Edits编辑日志:存放的是Hadoop文件系统的所有更改操作(文件创建,删除或修改),文件系统客户端执行的更改操作,首先会被记录到Edits文件中。相同点Fsimage和Edits文件都是经过序列化的,在NameNode启动时,它

2021-01-22 13:48:23 1355

原创 使用动态分区的方式为Hive中的分区表加载数据

1.创建临时表,为临时表添加数据Drop table if exists test.tmp;create table test.tmp( shopid int, userid int, areaid int, shopname string, shoplevel tinyint, status tinyint, createtime string, modifytime string, dt string)row format d

2021-01-21 15:01:47 1173

原创 Flume在进行数据采集的过程中,有哪些能够优化的地方

Flume的双层采集(第一层数据采集,第二层数据汇聚) Channel可以使用Kafka channel,兼具File Channel和Memory Channel的优点;还可以兼具离线和实时处理 Flume替换为轻量级的日志收集组件logstash(ELK套件中的L),或更轻量集的filebeat Flume拦截器,可以多虑多余的数据,仅保留Json串...

2021-01-21 10:26:14 399

原创 crontab简介

Linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。Linux 系统也提供了Linux用户控制计划任务的命令:crontab 命令。日志文件:ll /var/log/cron* 编辑文件:vim /etc/crontab 进程:ps -ef | grep crond ==> /etc/init.d/crond restart 作用:任务(命令)定时调度(如:定时备份,实时备份) 简要说明

2021-01-19 18:17:36 1036

原创 DataX从hive导出数据到mysql报错,无法将hive表中数据内容导入mysql

ERROR StdoutPluginCollector - 脏数据:{"message":"No enum constant com.alibaba.datax.plugin.unstructuredstorage.reader.UnstructuredStorageReaderUtil.Type.BIGINT","record":[{"byteSize":2,"index":0,"rawData":"城市","type":"STRING"},{"byteSize":0,"index":1,"raw...

2021-01-18 18:25:06 2970

原创 如何查看两个相似数据库中一个数据库比另一个数据库多出的表

通过sql语句实现查找出两个数据库中不同的表 SELECT * FROM( SELECT table_name FROM information_schema. TABLES WHERE table_schema = 'geologic') AS aLEFT JOIN ( SELECT table_name FROM information_schema.TA...

2019-04-26 17:22:48 732

空空如也

空空如也

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

TA关注的人

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