- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 SparkSQL相关知识点和使用示例
其中从Spark2.0开始:DataFrame 每一行的类型固定为RowDataset 每一行的类型都是一个case class。
2023-07-30 11:46:26 310
原创 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关注的人