- 博客(85)
- 资源 (7)
- 收藏
- 关注
原创 Spark产生小文件的原因及解决方案
Hadoop集群中的文件都是以块(Block)的形式存储在分布式文件系统(HDFS)中的,而Block的默认大小设置随着Hadoop的版本迭代经历了64MB、128MB、256MB,其大小实际受制于磁盘/网络的传输速率。当Block的大小为128MB时,若一个文件的大小显著小于128MB,我们就称之为小文件。
2024-04-08 16:45:52
1577
1
原创 python动态重载模块
https://www.cnblogs.com/phyger/p/12492216.htmlPython3 reload() 函数 | 菜鸟教程
2023-07-12 11:30:51
207
原创 Hive新增/变更字段后,Hive metastore与Hive tblproperties缓存的spark schema不一致处理
Hive新增/变更字段后,Hive metastore与Hive tblproperties缓存的spark schema不一致处理
2022-07-13 10:45:53
1646
原创 XShell批量发送命令至多个会话
近期有个每周批量重启服务的需求,因为涉及的服务器节点有十几个,并且要区分主节点和子节点,每次都要挨个提交一遍重启命令(关闭服务需要先执行子节点,再执行主节点;启动服务反之),繁琐且耗时。遂发现XShell支持[快速命令]执行[到当前会话]、[当前标签组]、[全部会话],高效解决该问题。...
2022-06-20 16:17:56
9314
原创 数仓拉链表逻辑
全量拉链1、数从源库抽取全量数据,存储于数仓源层表的当日分区(SA表)2、将数仓源层表当日分区的全量数据,转储进历史层当前表(SH表)3、处理数仓历史层拉链表(SH_H表):将存在于数仓历史层拉链表(SH_H表)中,但是不存在于历史层当前表(SH表)的数据,进行关链(开链日期不变,关链日期为当天)4、处理数仓历史层拉链表(SH_H表):将存在于数仓历史层拉链表(SH_H表)中,并且存在于历史层当前表(SH表)的数据(该部分数据是未更新或新增的数据,开链日期不变,关链日期为永久有效),UNION
2022-05-18 18:43:18
303
原创 Hive建库浅析
建库create database if not exists db_temp;显示已创建的库--显示所有库show databases;--显示指定库show databases like '*temp*';查询当前库select current_database();删库(删库需谨慎,否则只能跑路了=_=)drop data if exists db_temp;...
2022-04-26 16:18:13
1639
原创 Hive建表及插入数据浅析
通过已有表创建新表(仅创建表结构)create table new_table like old_table;通过已有表创建新表,并复制已有表数据create table new_table as select * from old_table;建表后,直接插入数据--建表create table table_name ( id int ,name string)--插入数据insert into table_name values(1,'colin');建表后,通过
2022-04-26 15:34:26
4493
原创 Hive建表语句浅析
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name[(column_name data_type [COMMENT column_comment], ...)][COMMENT table_comment][PARTITIONED BY (column_name data_type [COMMENT column_comment], ...)][CLUSTERED BY (column_name1, column_name2, ...)][SOR.
2022-04-25 18:29:56
1749
原创 Hive内表和外表浅析
内表由hive完全管理生命周期(元数据+数据);外表hive只管理元数据的生命周期; 内表删除后,会同步删除元数据(metadata)及数据;外表删除后,仅删除元数据,hdfs上的存储数据文件不会被删除; 内表修改会直接同步给元数据,外表修改(元数据及分区),需要修复表(MSCK REPAIR TABLE table_name) 内表不加external关键字修饰;外表加external关键字修饰; 内表数据存储位置默认是hive.metastore.warehouse.dir(路径:/user/h
2022-04-25 16:50:07
1844
原创 Spark Sql常用函数
current_date() 当前日期select current_date();--2022-02-22now() 或 current_timestamp() 当前时间select now();select current_timestamp();--2022-02-22 22:22:22datediff(endDate, startDate) 日期相差天数select datediff('2022-02-22','2022-02-20');--2months_bet...
2022-04-12 11:34:57
5599
原创 Mysql登录连接、查询、备份等常用命令(一篇概全)
连接mysql数据库mysql -u 用户名 -p 密码 -h 主机IPmysql -u root -p 123456 -h 10.77.77.77或mysql -uroot -p123456 -h10.77.77.77注:一般安全起见不直接输入密码明文,仅输入-p,后在命令提示符下输入密码获取表索引信息show index/keys from 表名;show index from TABLE;show keys from TABLE;获取某日期之前/之后N天/月的日期
2022-04-12 10:18:43
633
原创 Oracle关于date类型的查询方式及效率浅析
背景:数仓ETL环节通过sqoop抽取某个Oracle业务表时,突然在某天提示sqoop导出错误,重试仍然失败。经过查询源库发现当前增量抽取sql耗时特别久,涉及oracle数据库date类型比较时的查询效率问题。原始增量查询sqlselect * from ora_table where to_char(update_time,'yyyymmdd') = '20220222';注:在Oracle源库update_time字段为date类型,上述sql意为取2022-02-22一天的记录问题
2022-03-24 10:44:49
8976
原创 Excel查找重复行
如果表格中有重复行,需要快速定位重复行先选中要比对内容,菜单—开始—条件格式—突出显示单元格规则—重复值确认后,即可以重复行内容
2022-03-15 18:02:20
3834
原创 Python提示IndentationError: unindent does not match any outer indentation level
原因python语法在代码对齐中,不能混用空格和制表符(Tab)在notepad++中,可以通过“视图”—“显示符号”—“显示空格与制表符”,查看代码对齐方式可以看到代码中使用了空格和制表符混用代码对齐方式统一后即可正常执行脚本...
2022-03-15 17:31:53
936
原创 Excel删除空行
使用场景:当你要进行筛选某列时,由于数据存在空行,被空行分割的内容无法被筛选到,这时候需要先把空行删除掉,再进行筛选筛选内容存在空行此时筛选不能包含全部内容通过ctrl+g,打开定位,选择“定位条件”选择“空值”,确定此时空行会被选中,在任一空行上面右键,删除选择删除“整行”,确定删除完空行后,再次进行筛选,发现就能选择全部内容了...
2022-03-15 16:21:28
853
原创 Excel字符串拼接
使用&符号字符串1 字符串2 &拼接 拼接结果 awe some =A1&"-"&B1 awe-some 使用concatenate函数=concatenate(text1, [text2], ...)字符串1 字符串2 concatenate函数拼接 拼接结果 awe some =concatenate(A1,"-",B1) awe-some 其他...
2022-03-15 13:49:48
857
原创 Excel字符串截取
left=left(text, [num_chars])注:从给定文本左侧开始截取特定长度的字符(默认截取1个字符)文本 函数 函数结果 awesome =left(A1) a awesome =left(A1,3) awe right=right(text, [num_chars])注:从给定文本右侧开始截取特定长度的字符(默认截取1个字符)文本 函数 函数结果 awesome =right(A1) e
2022-03-15 11:00:24
1366
原创 Shell 将传参字符串按指定分隔符拆分成数组,并遍历处理
shell默认多个传参值是以空格为分隔符的$ cat show_var.shfor i in $@do echo $idone#在shell中$*和$@都是内置变量,表示整个参数列表$ sh show_var.sh apple banana cherryapplebananacherry如果传参是个字符串,并且能够以特定字符进行分割,则需要用到shell的另一个内置变量$IFS注:IFS(Internal Field Seprator),内部域分隔符,是shell的内..
2022-01-30 15:02:34
5337
原创 Shell中$开头的内置变量
$0shell脚本自身名称$1~$nshell传参值,$1第一个参数,$2第二个参数,以此类推$#shell传参个数(从$1参数开始计算)$*shell传参的整个列表("$*" 使用双引号包含时,仍将所有参数看做一个整体)$@shell传参的整个列表("$@" 使用双引号包含时,将每个参数都看做一个独立数据)$$shell本身的pid(ProcessID)$?shell最后一次命令执行的返回值(0为正常退出,非0为异常退出)示例:$ cat show_va
2022-01-30 11:46:35
1755
原创 Linux下遍历读取文件内容
通过while循环读取$ cat test.txtapple 1banana 2chery 3$ cat myread.shwhile read linedo echo $linedone < test.txt$ sh myread.shapple 1banana 2chery 3或者直接在命令行执行while命令(需要使用分号;来区分代码块)$ while read line; do echo $line; done < te
2022-01-28 15:48:03
2331
原创 Linux下ftp常用命令
上传 下载get FILENAME 下载单个文件mget FILENAME1 FILENAME2... 下载多个文件注:多文件下载时默认会对每个文件进行交互确认,通过prompt设置ftp模式,以关闭交互模式其他
2021-11-18 23:26:14
753
原创 Excel获取某字符在单元格最后一次出现的位置
函数=FIND("@",SUBSTITUTE(A1,"/","@",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))思路首先,了解SUBSTITUTE函数的参数含义SUBSTITUTE(需要替换的文本,旧文本,新文本,替换第N个旧文本)最后一个参数,指定需要替换第几个就文本首先,我们获取需要替换的字符在整个字符串中出现了几次=FIND("@",SUBSTITUTE(A1,"/","@",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))
2021-10-27 19:11:11
8718
原创 Windows右键添加应用打开方式
适用场景针对多目录下需要使用同一个应用进行处理的情况,譬如一些加/解密操作场景,需要进行加/解密的文件通常分布在多个目录下,假如需要使用*.bat批处理对其他文件进行加/解密操作,每次都需要拷贝文件到处理目录下,比较耽误事,直接将*.bat添加至右键,就可以解决这个问题解决方案1、打开注册表 win + r(输入regedit)2、进入HKEY_CLASSES_ROOT/*/shell目录3、shell右键→新建→项(譬如命名decode)4、decode右键→新建→项(命名comman
2021-07-16 18:11:23
1276
原创 各数据库查询前N条记录
ORACLE select * from table where rownum <= N;MySQLselect * from table limit N;SQL SERVER select top N * from table;PostgreSQLselect * from table limit N;INFORMIXselect first N * from table where rownum ...
2021-07-12 17:42:31
155
原创 ORACLE存储过程的异常处理
默认异常捕获create or replace procedure p_excepisbegin --存储过程执行... exception when others then --异常发生时执行(如输出异常信息、插入日志,数据库回滚等) dbms_output.put_line(sqlcode); dbms_output.put_line(sqlerrm); --sqlcode和sqlerrm是oracle内置函数,用于返回错误代码及描述
2020-11-16 16:12:16
4346
原创 ORACLE存储过程使用execute immediate执行动态SQL
使用execute immediate动态sql拼接a.intorgcode = '''||para_intorg1(l)||'''a.item = '||para_item(j)||' max(x.'||para_sub_item(k)||')其他使用动态游标参考:https://www.cnblogs.com/hanruyue/p/5974036.html...
2020-11-16 15:36:14
1811
原创 ORACLE数据库连接进程批量KILL
应用场景当ORACLE数据库有打补丁等涉及启停操作时,往往需要先关停前端应用服务,然后在数据库服务器端检查是否还存在远程连接进程,如果有则需要KILL掉,然后才能启停数据库操作命令ps -ef|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9其他...
2020-08-05 11:36:29
720
原创 ORACLE批量导出/入表结构
导出表结构PL/SQL→工具→导出用户对象选择要导出对象的用户,这里“包括存储”和“包括所有者”如果勾选,则导出内容将分别包含表空间信息及表名前所有者信息,点导出即可导入表结构PL/SQL→工具→导入表选择“导入文件”为上步导出的sql文件,点导入即可,导入完成后会在当前导入文件路径生成导入日志...
2020-07-31 19:55:44
2741
原创 linux crontab操作
查看或编辑crontabcrontab -e/-l查看crontab日志tail -n 100 /var/log/cron其他
2020-07-22 19:52:06
152
原创 Linux给普通用户配置sudo权限
sudo配置文件的路径/etc/sudoers注:sudoers文件默认是只读权限,如果需要修改可以添加写权限 chmod u+w /etc/sudoers,编辑完成后再取消写权限 chmod u-w /etc/sudoes,或者不修改文件权限,直接vi编辑完后强制保存退出 :wq!授权格式授权用户 主机=[(切换到哪些用户或组)] [是否需要密码验证] 命令1, 命令2...其中,[(切换到哪些用户或组)] 如果省略则默认是root用户,如果是ALL则表示可以切换到任何用户,用户或组.
2020-07-22 19:31:46
789
原创 Linux后台运行脚本或命令
后台执行./test.sh后台执行./test.sh &注:使用&符号在后台执行脚本命令时,如果终端退出,则命令就会被终止(因为test.sh在后台运行时,其父进程就是当前shell终端,如果关闭终端,父进程退出,会发送hangup信号给所有子进程,子进程收到hangup信号后也会退出)不间断后台执行nohup ./test.sh &注:使用nohup则可以忽略hangup信号,使得子进程不间断在后台执行,这个时候就可以脱离终端在后台执行脚本了..
2020-07-16 19:45:36
914
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人