
笔记
文章平均质量分 51
江南正晓时
这个作者很懒,什么都没留下…
展开
-
大数据练习题mysql之求连续出勤和连续最大登陆天数
某APP活跃用户,字段uid和dt两个字段,求连续出勤天数大于等于三天的用户和用户最大登录天数求连续出勤天数,使用row_number()方法:SELECT a.uid, DATE_SUB(a.dt,INTERVAL a.rn DAY),COUNT(1) FROM(SELECT uid ,dt ,row_number() over(PARTITION BY uid ORDER BY dt) AS rn FROM active) aGROUP BY a原创 2022-05-26 23:37:40 · 1165 阅读 · 0 评论 -
mysql基础操作导入数据
文章目录展示三种不需要使用数据操作的数据导入方法1.mysql命令导入:mysql -u用户名 -p密码 < 要导入的数据(sql文件)2.source 命令导入: source c:\Desktop\text.sql3.使用MySQL 语句来插入数据:LOAD DATA INFILE展示三种不需要使用数据操作的数据导入方法1.mysql命令导入:mysql -u用户名 -p密码 < 要导入的数据(sql文件)实例:向表temp_test_01(user_id,dat原创 2022-05-23 11:39:34 · 5641 阅读 · 0 评论 -
python多线程的实现
python多线程的实现 threading模块原创 2022-04-11 11:24:35 · 3021 阅读 · 0 评论 -
python3字符串的操作
文章目录一、字符串的编码和解码1.encode()2.decode()二、字符串取值和切片1.str[]三、字符串的查询操作1.find()2.index()3.count()4.rfind()5.rindex()6.len()四、字符串替换、裁剪、拼接1.replace()2.split()3.join()五、字符串的大小写转换capitalize()title()upper()lower()swapcase()七、字符串对齐1.ljust八、字符串删除九、字符串判断一、字符串的编码和解码1.enco原创 2022-02-28 15:56:04 · 982 阅读 · 0 评论 -
leetcode 关于python实现题目两数之和的思考
关于python实现题目两数之和的思考原创 2022-02-17 14:01:35 · 444 阅读 · 0 评论 -
shell基础的正则表达式
什么是正则表达式正则表达式是使用某种模式去匹配字符串的一种公式,是由一串字符和元字符构成的字符串基础的正则表达式表达式作用.(句点)匹配换行符(\n\r)意外任意的字符*后面有0个或多个,重复匹配*号前面的字符{m,n}mn均为非负整数,其中m<=n。大小匹配1此,最大匹配n次^以…开头,标识从字符串首位匹配,书写时必须写在首位,否则匹配为空$以…结尾, 标识从字符串末尾匹配,书写时必须写在末尾,否则匹配为空[]字符集范围,[0-9]原创 2021-12-29 14:56:40 · 259 阅读 · 0 评论 -
shell 输入一个开始时间和一个结束时间,如何找出其中所有的周一和周日
题目:当输入一个开始时间,一个结束数据,我们如何计算其中的周一和周末思路分析:确认第一个周日和最后一个周日,使用while循环每周+7的形式,确定每一个周日,周一就是周日 -6天1.先建立一个text脚本vim text.sh2.输入以下代码:#!/bin/sh#获取开始时间sta_date=$1#获取结束时间end_date=$2echo "开始时间为:${sta_date}"echo "结束时间为:${end_date}"#限定开始日期只能是 yyyymmdd 的数字原创 2021-12-23 11:27:57 · 900 阅读 · 0 评论 -
#如何用shell查询一张hive的表是否为空表
例如:一张分区表表名: table_ku.table_name分区: t-1天,每天一个分区,10000条数据方案一:调用hive的方法去统计方法1:统计一共有多少条数据,为0条说明表格为空file_memory=`hive -e "select count(1) from table_ku.table where dt=${yesterday}"|sed -n '2p'`#导出统计值echo file_memory输出10000方法2:统计是否有数据,有数据证明不为空file_mem原创 2021-12-21 14:44:55 · 1481 阅读 · 0 评论 -
python学习之函数变量的作用域
变量的作用域相当于变量的命名空间,赋值过的变量并不是在哪里都可以使用的。如何定义变量决定了变量在哪里可以被使用什么是变量的作用域?程序代码能访问该变量的区域根据变量的有效范围可分为:局部变量和全局变量1.局部变量在函数内定义并使用的变量,只在函数内有效,局部变量使用global声明,这个变量就会变成全局变量2.全局变量函数体外定义的变量可作用于函数内外实列:s='hello Python' #全局变量def fnc(): x='hello world' #局原创 2021-12-17 14:36:43 · 761 阅读 · 0 评论 -
python学习之函数创建和参数定义
文章目录1.什么是函数2.函数的创建和调用(1)函数的创建(2)函数的调用3.函数的参数的定义(1)必须参数:(2)关键字参数:(3)默认值参数(4)可变参数1.什么是函数背景:在编程中,我们经常要用到调用相同或者类似的操作,这些相同或者类似的操作是由同一段代码完成的。函数的出现可以帮助我们避免重复编写这段代码。把相对独立的某个功能抽象出来,使之称为一个独立的实体定义:函数就是完成特定任务,执行特定功能的一段代码作用:复用代码,隐藏实现细节,提高可维护性,提高可读性,便于调试2.函数的创建和调用原创 2021-12-17 11:56:21 · 838 阅读 · 0 评论 -
python学习之递归函数以及用递归实现斐波那契数列
1、什么是递归函数如果一个函数的函数体内调用了该函数本身,这个函数就称为递归函数实列:使用递归实现一个阶乘 5*4*3*2*1def fun(a): if a==1: return 1 #终止条件 else: return a*fun(a-1) #递归调用print(fun(5)) ************************* 120分析: 当输入值5时,按照递归依次带入到函数中 5 * (4 * (3*(2*fun(1原创 2021-12-16 17:58:45 · 1641 阅读 · 0 评论 -
python学习-字符串的驻留机制
1.什么是字符串的驻留机制字符串驻留:是一种在内存中保存一份且不可变字符串的方法。(相同的字符串只保留一份)不同的值被存放在字符串的驻留池当中,Python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同的字符串时,不会开辟新的空间,而是把字符串的地址赋给新的创建变量。a='hello'b="hello"c="""hello"""print(a,id(a)) #hello 2967447375728print(a,id(b)) #hello 2967447375728print(a,原创 2021-12-15 15:26:28 · 2107 阅读 · 0 评论 -
python学习1--列表的创建、增删改查、以及反转、统计、排序
1.什么是列表列表是pyhon的一种数据结构,序列中的每个值都有对应的位置值,称之为索引。列表可以储存N多个元素。它相当于其他语言中的数组2.列表的创建1.使用中括号lst=['hello','world',98]2.内置函数list3.列表生成式3.列表的查询1.查询元素索引2.获取单个元素3.获取多个元素4.in/not in4.列表元素的增删改append() 在列表的末尾添加一个元素extend() 在列表的末尾至少添加一个元素insert() 在列表的任意位置添原创 2021-12-13 14:59:48 · 872 阅读 · 0 评论 -
hive sql自动生成id的两种方法随机id和自增id
文章目录1.生成自增id:row number() over(order by)2.随机不重复id: regexp_replace(reflect('java.util.UUID','randomUUID'),'-','')1.生成自增id:row number() over(order by)使用窗口函数来生成自增id是比较常见的手法select * from yc_test1grade_id subject_name max_score1 语文 982 数学 952 政治 875原创 2021-08-10 00:32:35 · 11416 阅读 · 0 评论 -
hive sql 常见错误:invalid table alias or column difference ‘b‘
invalid table alias or column difference ‘b’f翻译:无效的别名或者列引用 ‘b’我们从这里可以看出应该是我们使用hql的时候错误的引用了别名,这里我们直接查找到与 ‘b’ 相关的字段语句就可以确定问题点,出现这种问题的原因主要是给字段设置别名后做了修改,但是有残余,或者引用其他的sql的时候,忘记去处理场景举例select a b c x.d from text_table这里的原创 2021-08-06 02:04:42 · 5468 阅读 · 0 评论 -
hive常见错误:cannot insert into target table because column number/type are different ‘table_name‘
cannot insert into target table because column number/type are different ‘table_name’由于字段数量或者字段类型与源表 table_name 不同不能插入到目标表table insclause-0 has 78 columns,but quary has 79 columns目标表有78列数据,但是插入的查询有79列从字面意思很好理解,就是我们使用查询插入的时候,查询的字段数比目标表的字段数要多举例:一张表targ原创 2021-08-06 01:54:33 · 10523 阅读 · 2 评论 -
hive 中 null和 ‘‘的区别
null 和 ‘’ 是两个完全不同的概念null 相当于没有有任何值,指向不同的数据类型或对象 而’'则只是表示没有一个空的字符串.使用上的区别在hql 或者 sql 中 如果一个字段是没有值的,通常就会默认显示null,而 ‘’ 是人们主动设置的① 我们查找表里的null的时候 x(字段名) is null 或者 x is not null② 查找表里的 ‘’ x(字段名) = '' 或者 x <> ''当表示字符串的时候,null 和 ‘’ 呈现出来的效果是一样的,所以原创 2021-07-27 16:29:26 · 802 阅读 · 0 评论 -
with as复习
什么是with aswith as 公用表表达式如果一段查询的sql涉及多个重复的子查询,可以使用with as 来简化,with as 是一个简单查询的临时结果集(会把查询的表数据放到内存中,供其他查询随时使用),oracle、hive都存在with as的用法,用于将重复的查询结果复用可以在Hive SELECT,INSERT, CREATE TABLE AS SELECT或CREATE VIEW AS SELECT语句中使用一个或多个。例如CREATE TABLE TABLE_A AS原创 2021-05-16 15:02:59 · 737 阅读 · 0 评论 -
sqoop同步数据字段常见的一些问题及解决办法
文章目录1.字段名称错误2.数据长度超过设定3.字段格式错误1.字段名称错误解决方法: 字段名称发生错误的时候,直接别对字段名,hive表的字段名和rmdb数据库表的字段名是否有写错的地方2.数据长度超过设定实际状况,使用sqoop将数据导入postgresql时报错,显示有字符超过pg表设定的长度,但是并没有显示是那个字段超出解决方法: 查看postgresql里面设定为长度的字符,.使用length函数,定位临时表里面超过字符长度的字段,找出详细的字段详细参考下面的方法https://bl原创 2021-05-16 14:09:11 · 1538 阅读 · 0 评论 -
hql习题:求每天最大在线人数
题目来自: https://blog.youkuaiyun.com/qq_40713537/article/details/114096931题目刷题遇到一个大佬遇到的京东面试题,也做了一下给定一个表event_log,字段有date,timestamp,event_name(只有login、logout两种),user_id。用hql求每天同时最大在线人数date_time time_stamp userid event_name2021-02-23 1614211111 a转载 2021-04-23 21:52:23 · 406 阅读 · 0 评论 -
hive 函数:取整和绝对值
文章目录1.取整函数2.绝对值1.取整函数 1.round 四舍五入 2.ceil 向上取整 3.floor 向下取整1.round 四舍五入:select round(9.4) as num;--输出结果num9.0select round(9.5) as num;--输出结果:num10.02.ceil向上取余select ceil(9.4) as num;--输出结果num103.floor向下取余select floor(9.5) as n原创 2021-04-22 00:17:22 · 12680 阅读 · 1 评论 -
如何用hql实现 一个按天分区的指标表,当昨天该表里某一个指标全为空,该指标将单独使用前天的数据,如果昨天该表某指标有一条不为空,那该指标还是使用昨天的数据
思路:需要统计昨天的某一个指标是否为空,为空则取前天的数据,有一条不为空取昨天的数据。例如 表x 有指标 aa bb cc dd ff gg ee select case when aa.flag > 0 then p.aa else s.aa end as aa ,case when bb.flag > 0 then p.bb else s.bb end as bb ,case when cc.flag > 0 then p.cc else s.cc原创 2021-04-13 20:51:15 · 155 阅读 · 0 评论 -
用shell写一些简单的触发程序
文章目录1.只在特定的时间执行脚本,其他时间脚本直接结束,并返回成功2.输入不同的参数,脚本可以反馈不同的功能3.根据表是否存在触发脚本运行,返回成功,但是不要报错使用循环函数,做一个关于时间的迭代1.只在特定的时间执行脚本,其他时间脚本直接结束,并返回成功案例一:每天8:00~12:00不执行脚本,其他时间正常执行脚本#获取当前时间now_time=`date +'%Y%m%d%H%M%S'`#上午八点start_time=`${now_time:0:8}080000`#中午十二点end_原创 2021-04-09 00:32:35 · 431 阅读 · 0 评论 -
使用shell来获取调度系统里的提供的配置文件参数
使用shell来获取调度系统里的提供的参数例如使用scheduler 我们通常是将配置文件和脚本一起打包到一个压缩文档里面cat name.cfgusername=adcpassword=123思路:scheduler是可以设置给定参数的,这里我们可以把配置文件的名字做为参数传递给脚本因此这里我们需要设置一个变量来获取配置文件参数,并且使用shell来解析配置文件 #!/bin/bash #设定参数接受函数,这里假设第二个参数为设置在scheduler上的配置文件参数名 config=$2原创 2021-04-07 22:10:22 · 474 阅读 · 0 评论 -
hql练习题不定期更新
hql练习题文章目录hql练习题习题一: 展示合规产品的开始时间和结束时间习题2习题一: 展示合规产品的开始时间和结束时间表一产品 合规 日期1 1 202012011 1 202012021 1 202012031 0 202012041 0 202012051 1 202012061 1 20201207表二产品 合规的产品 开始时间 结束时间1 1 20201201 202012031 1 20201206 20201原创 2021-03-16 01:23:53 · 309 阅读 · 0 评论 -
shell 中 date命令对month 进行加减操作的bug
笔者在设置参数上月第一天时出现了bugt-1天:last_day=date + “%Y%m%d”上月第一天:last_month_01=date -d "${last_day}-1 month" +'%Y%m01'当月份出现10月31,12月31等天数时,last_minth_01出现结果:10月01,12月01即剪完一个月还是当月的情况。后经查询,这是shell编程的一个bug。取上个月的月份时,很容易想到以下命令:date + %Y%m -d ‘-1 minth’或者date + %Y原创 2020-11-10 14:52:08 · 1804 阅读 · 1 评论 -
解决数据发散的问题
解决hive表数据发散的问题笔者在sqoop将hive表推送数据到pg库出现数据发散的情况,过程简述:建立临时表C,将表A left join 表B的数据抽取到临表C,使用sqoop,推送到 pg库(关系型数据库),验数时发现推送过去的数据异常。有发散(数据重复)的情况。首先定位发散原因:(1)检测临时表C的数据是否异常,如果数据正常,说明在推送过程中出现了异常,检查sqoop推送过程中的参数设置是否异常,比如说需要每次推送导入pg库,需要用sqoop上删除上一次导入的的数据,但是参数时间设置错误原创 2020-11-06 10:48:44 · 8254 阅读 · 2 评论 -
shell编写时间四个季度,上周末等参数
#shell编写时间四个季度,上周末等参数1.设置四季度转化为标准语句为#设置t-1天last_day=`date -d "-1 day" +'%Y%m%d'`##shell编写四个季度,方法1#设置五个时间结点one_time=`echo ${last_day:0:4}`"0101" two_time=`date -d "${last_day:0:4}" +'%Y0401'`three_time=`echo ${last_day:0:4}`"0701"four_time=`echo原创 2020-10-23 23:51:17 · 992 阅读 · 0 评论 -
如何写简单的linux脚本
用shell语言写一个关于hive的脚本Ⅰ1.一般我们在linux中运行一个脚本,可以指定一些参数,可以是配置文件(name.cfg),数据库名,时间等等sh test.sh name db_name 20201022以下是一个test.sh的脚本#!/bin/sh###第一步获取指定参数,一般用来做测试一个脚本来使用#-----------------------------------------------#获取第一个参数name.cfg,$1可以获取第一个指定的参数set_name原创 2020-10-23 00:26:10 · 1831 阅读 · 0 评论 -
不规则年月的月份加减
hive sql不规则年月的增减参考https://blog.youkuaiyun.com/u010916338/article/details/103400816笔者需求:要将a表与b表相关联,b表是a表的历史表,且两表粒度是id 和 月份 month,month的数据类型是yyyy-MM,求如何对两张表进行关联思路 a left join b on a.id = b.id and a.month = b.month + 12个月转化为标准语句为 a left join b on a.id = b.id原创 2020-10-16 01:53:14 · 604 阅读 · 0 评论