自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hive中distinct和group by 去重运行效率对比

hive中distinct和group by 去重运行效率对比。

2022-10-05 18:55:11 1877 1

原创 SemanticException Range based Window Frame can have only 1 Sort Key

selectsum(money) over(partition by id order by datekey,id)from table_test;在运行这个语句的时候报错Error while compiling statement: FAILED: SemanticException Range based Window Frame can have only 1 Sort Key解决方案显式窗口子句可能会解决错误:select sum(money) over (partition b

2021-07-01 15:00:19 743

原创 hive分区字段不支持timestamp类型

首先创建一个外部分区表(分区字段设置为时间类型(timestamp))辅助表test创建普通外部表create external table test(id string comment '账号',datekey timestamp comment '交易时间',name string comment '公司名称')location '/xx/lrz_test';create external table testa(id string comment '账号',dateke

2021-05-21 15:39:13 1026

原创 leetcode-189.旋转数组

题目详情:点此处解法①:相对来说比较容易想到的办法就是借助一个数组来实现也就是将原数组中k以及后面的数据作为新数组前k个数据,原数组中k前面的数据作为新数组k后面的数数据class Solution { public void rotate(int[] nums, int k) { int n=nums.length; int[] num= new int[n]; for(int i=0;i<n;i++){

2021-05-12 23:22:14 104

原创 hive查看锁表以及解锁

今天在使用hive的时候发现insert overwrite table tablea,无法向里面插入数据,从而看了一下hive的解锁和查看锁表情况首先先看锁表情况show locks tablea;结果:tab_name modetablea SHARED得知tablea表已经锁住通过unlock table tablea进行解锁...

2021-05-09 15:38:24 5662

原创 leetcode-80.删除有序数组中的重复项II

题目详情:点此处相比26题,允许了重复数据的个数可以为两个。分析方法与26类似,还是使用双指针法首先判断nums.length<=2,成立返回nums.length因为允许相同数据的个数最多为两个,那么判断的方法就成了判断fast和slow-2的数据是否相等,不等则将nums[slow]=nums[fast]class Solution { public int removeDuplicates(int[] nums) { int n=nums.length;

2021-05-07 23:09:29 60

原创 leetcode-26.删除有序数组中的重复项

题目详情:点此处题解:首先需要注意这是一个有序数组解决方法:双指针法先判断数组的长度,如果小于2的话,即可返回本身;大于2的情况,则需要判断快指针和慢指针是否相等,不等则可将当前值赋给慢指针,否则剔除快指针数据。class Solution { public int removeDuplicates(int[] nums) { int n=nums.length; if(n<2) return n; int ans=0;

2021-05-07 22:53:19 67

原创 leetcode-27.移出元素

题目描述:点此处解法①:直接覆盖原有数组主要思路,遍历整个数组nums,取出数字变量num,同时设置下标ans如果num!=val,则将nums[ans]=num如果num=val,则跳过,最后ans即为数组最终长度。其实是和双指针解法类似class Solution { public int removeElement(int[] nums, int val) { int ans = 0; for(int num: nums){

2021-05-06 23:25:45 61

原创 hive实现wm_concat()

首先还是先说下wm_concat的函数定义wm_concat:通过id实现某个字段的拼接举一个例子来更清楚的展示wm_concat的作用效果例:现有table: tmp|id | name || 1 | yy || 1 | yw || 2 | tl || 3 | lo || 3 | ke |oracle sql:select id,wm_concat(name) namet from tmp group by id结果:|id | namet || 1 .

2021-04-29 23:25:30 4385

原创 hive系统时间减几天,但保留时分秒

先说思想hive只有date_sub()函数实现日期减去几天,但是如果还要求保留时分秒的话,这个函数不能满足需求。只能通过对date_sub()的结果再次处理方可得到含有时分秒的值,也就是在date_sub()函数后面拼接上当前日期的时分秒即可。select FROM_UNIXTIME(UNIX_TIMESTAMP(concat_ws('',date_sub(current_timestamp,1),substr(current_timestamp,11)),'yyyy-MM-dd HH:mm:s.

2021-04-26 20:07:07 2068 1

原创 HDFS的shell操作

1.基本语法hadoop fs 具体命令或者hdfs dfs 具体命令两者的作用一样,只是书写方式不同,更偏向于使用第一种书写方式。具体命令3.常用命令1.-help:输出这个命令的参数 例: hadoop fs -help mkdir2.上传命令 1)-moveFromLocal:从本地剪贴粘贴到HDFS 例:假如当前目录下有 tmp1.txt,HDFS上有tmp目录 hadoop fs -moveFromLocal tmp1.txt /tmp 2)-copyFromL

2021-03-30 23:57:26 107

原创 hive如何将split切割后的结果转成列输出

首先创建一个测试表 test 将需求表明。 id name 1 yy,tl,dd 2 xy,dl,dz想要得到的结果是1 yy1 tl1 dd2 xy2 dl2 dz思路: 需要将name通过','进行切割(split),得到数组结果集,就需要考虑如何将这个数组和id如何输出,此时就要借助explode,而hive不支持explode的直接使用,还需要lateral view去实现。下面给出对应的sql语句:select a.id, b.ren

2021-03-05 17:56:35 1133

原创 sublime text3对比两个文件不同

今天使用Sublimerge时发现需要许可证才可以使用了。现在发现一个Diffy插件和Sublimerge类似不过功能比较简单。安装方式: ①打开sublime text,按下Ctrl+Shift+P,输入 install 调出 Package Control: Install Package 选项,按下回车。 ② 输入Diffy,按下回车,安装插件 使用方式:在视图打开两列,然后将需要比较的文件两列各放置一个。右击有Diffy然后进行比较。快捷键是: 开启:Ctrl+K,Ctrl+d

2021-03-01 16:08:31 2942

原创 oracle批量化查询指定表的字段信息

DECLARE type projects_varray2 is varray(10000) of varchar2(20000); --定义数组 o1 varchar2(32765); o2 varchar2(32765); v_projects projects_varray2:=projects_varray2('table_name_test1','table_name_test2','table_name_test3','table_name_test4');begin

2021-02-23 16:20:10 534

原创 oracle批量化查询表名注释

DECLARE v_sqls varchar2(5000) := ''; type projects_varray2 is varray(64) of varchar2(200); --定义数组 --手动输入表名 v_projects projects_varray2:=projects_varray2('table_name_test1','table_name_test2','table_name_test3','table_name_test4');begin--循环获得

2021-02-23 15:03:05 349

原创 oracle中查询表注释和字段注释

查询表注释:select * from user_tab_comments a where a.table_name='xxx';查询字段注释:select * from all_tab_columns a where a.TABLE_NAME='xxx';

2021-02-23 11:27:37 3122

原创 hive实现日期相减

今天在看hive日期相减函数的时候只发现了,datediff(),date_sub(),date_add()等函数可查看此链接,却没有发现保留精确值的函数。而当发现unix_timestamp()函数就会感觉计算会很简单。通过时间戳(划算为秒)来计算保留日的精确值select abs((unix_timestamp('2021-01-28 00:00:00') - unix_timestamp('2021-01-29 12:00:00'))/(3600*24))描述:`unix_timestamp

2021-01-28 17:08:18 25091

原创 oracle和hive关于空字符串和null的判断

首先看oracle的输出结果with q1 as(select'' test1,null test2from dual)select case when test1='' then '空字符串' when test1 is null then '空' else '啥也不是' end test1,case when test2='' then '空字符串' when test2 is null then '空' else '啥也不是' end tes

2021-01-06 10:57:59 386

原创 oracle对比两表不同数据

select t1.* from (select * from TABLE_FACT minus select * from TABLE_FACT_TEST) t1unionselect t2.* from (select * from TABLE_FACT_TEST minus select * from TABLE_FACT) t2;

2021-01-05 16:46:59 837

原创 hive修改字段类型

alter table 表名 change column 原字段名 现字段名 字段类型

2020-12-30 14:50:40 19359

原创 pycharm如何更换pip成国内的源

由于默认镜像源为国外服务器,下载速度慢并且还会经常性的失败,故而提供两种国内镜像源,提高下载速度。阿里镜像源:http://mirrors.aliyun.com/pypi/simple/清华镜像源:https://pypi.tuna.tsinghua.edu.cn/simple/操作步骤1.file–>Settings–>Python Interpreter–>双击pip选中pip,点击Manage Repositories删除原有链接,点击+号,将最初的链接复制进去即可

2020-12-14 18:50:26 1260

原创 hive实现regexp_substr()

首先需要清楚regexp_substr()的作用,先看官方解释REGEXP_SUBSTR通过允许您在字符串中搜索正则表达式模式来扩展功能的功能。它也与相似REGEXP_INSTR,但是它不返回子字符串的位置,而是返回子字符串本身。如果您需要匹配字符串的内容,而不是它在源字符串中的位置,则此功能很有用。该函数返回的字符串形式为VARCHAR2或,并且CLOB数据的字符集与相同source_char。接下来对函数中的各个参数进行说明:REGEXP_SUBSTR(source_char, pattern, p

2020-11-09 19:35:02 6663

原创 sublime text3常用快捷键

1.多行变一行:Ctrl+J效果:

2020-10-30 17:03:59 195

原创 hive中时间类型1991-04-14 00:00:00.0无法显示

最近发现一条数据插入到hive当中的时候会自动转换为1991-04-14 01:00:00.0最开始以为是字段类型的原因尝试了date、timestamp类型,date类型虽然可以显示成1991-04-14但是导出到别的数据库(例如:oracle)中的时候任然会默认转换为1991-04-14 01:00:00.0。我又再次通过函数等方式进行测试还是不能成功。最终问题类型只能定义为hive底层逻辑问题,暂未得到处理。...

2020-10-28 20:34:29 577 1

原创 hive实现获取当前季度第一天

首先可以通过 (floor(substr(current_timestamp,6,2)/3.1)*3)+1 --获取的是本季度的月份例:select current_timestamp,(floor(substr(current_timestamp,6,2)/3.1)*3)+1输出: 2020-09-29 22:34:25.533 7然后通过拼接的方式实现,注意季度月份为1,4,7,10,拼接时需要进行判断。select concat(year(current

2020-09-30 10:32:35 6380

原创 hive中实现merge into

低版本的hive中又很多函数或者语句不支持使用,比如merge into就是一个。比如有两表表一:testtable1 包含以下字段: name project projectid grademath yearq monthq dayq表二:testtable2包含以下字段: name grade gradeid math chines

2020-09-29 15:23:02 6807 7

转载 Hive的Pivit和Unpivot实现

pivot转换SELECT uid, kv['c1'] AS c1, kv['c2'] AS c2, kv['c3'] AS c3FROM ( SELECT uid, map(key, value) kv FROM vtable GROUP BY uid) t-------------------------------------------------uid c1 c2 c3101 11 12 13102 21 22 23Unpivot转换SELECT

2020-09-18 16:54:17 2176

原创 hive常用时间日期函数

获取当前时间第一种获取方式select from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss');可以通过修改时间格式('yyyy-MM-dd HH:mm:ss'),来调整输出结果比如:调成yyyy-MM-dd则只显示年月日,不显示时间。注:hive中yyyyMMdd其中一定要对应好字母的大小写关系,否则会报错。 ---------------------------------------------------------- 输出结果:.

2020-08-05 18:09:05 3421

原创 VM上安装CentOS7

下载CentOS7可以在阿里镜像网站下载,速度较快。网址:阿里巴巴开源镜像站选择centos,进入下载。进入页面以后,下滑有下载地址。centos下载地址。在里面选择你要安装的版本进行下载,我选择的是7.8.2003,进入选择isos下载好即可。然后打开VM安装,选择创建新的虚拟机,先选择安装程序光盘映像文件(ISO),然后在浏览中选择你刚刚下载的idol文件,点击下一步即可。自己选择安装位置,也可以默认,然后下一步然后等待,进入这个页面以后,选择你想要的语言.

2020-07-02 11:38:20 127

原创 数据库

1.数据库和excel1.1数据库和excel处理重复数据和空值1.1.1excel中处理重复值和空值选中数据,在导航栏数据下可以快速删除重复数据。如果excel来计算重复的次数,可以通过选中数据,插入数据透视表即可。处理空值通过查找替换的功能即可1.1.2sqlerver处理重复值和空值处理重复值select * from dbo.ZF_白云区select distinct 位置区域 from dbo.ZF_白云区select 位置区域,count(0) as 次数 f

2020-06-23 18:14:02 123

原创 JQuery详解

1.jQuery介绍jQuery通过取名可以看出是由JavaScript和Query(查询),它就是辅助JavaScript开发的js类库。它的核心思想是:write less,do more(写的更少,做的更多),实现了很多浏览器的兼容问题。jQuery是免费的、开源的,它的语法设计使得开发更加方便快捷。下面通过一个小例子引出jQuery。只给出Script部分<script t...

2020-04-16 10:23:53 235

原创 JavaScript正则表达式

RegExp 对象正则表达式是描述字符模式的对象。用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。语法var patt=new RegExp(pattern,modifiers);或者更简单的方式:var patt=/pattern/modifiers; pattern(模式) 描述了表达式的模式 modifiers(修饰符) 用于指定全局匹配、区分大小写的匹配和多...

2020-04-15 11:06:37 67

原创 xml解析

解析的目的就是为了获取元素里面的字符数据或者属性数据1.解析方式DOM(Document Object Model)把整个xml全部读到内存中,形成树状结构。整个文档称之为document对象,属性对应attribute对象,所有的元素结点对element对象,文本也可以称之为text对象,以上所有的对象都可以称之为node结点。优:可以对文档进行增删操作缺:如果文档过大,内存可...

2020-04-04 18:18:40 84

原创 在刷题中经常用到栈、队列的函数

1.栈常用函数S.top();取出栈顶S.empty();判断栈是否为空。S.push(x);将x入栈S.pop();弹出栈顶S.size();栈的存储元素个数2.队列常用函数Q.empty()判断队列是否为空Q.front()返回队列头部元素Q.back()返回队列尾部元素Q.pop()弹出队列头部元素Q.push(x)将x添加至队列Q.size()返回队列的存储元...

2020-04-01 18:09:13 796

原创 mysql常用命令

我所使用的mysql版本是8.0.12首先登陆控制台mysqlmysql -u root -p注:以root用户登录mysql回车输入mysql密码出现此种提示代表登陆成功。附:如何查看mysql版本可以直接登录以后从登录成功信息中查看。2.查看当前mysql中的数据库show databases;注:mysql中以;结束进入某个数据库,并且展示此数据库的列表...

2020-03-28 11:09:09 63

原创 leetcode-剑指offer06-从尾到头打印链表

题目描述:解决思路:题目要求从尾到头打印链表,思路:借助栈来实现。栈遵循先进后出的的原则,正好适用于将链表的数据存储到栈中,然后打印栈就可得到题目要求。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListN...

2020-03-26 11:32:34 115

原创 mysql8.0以后版本,数据库信息写在xxx.properties,如何读取配置文件

properties文件编写driverClass=com.mysql.cj.jdbc.Driverurl=jdbc:mysql://127.0.0.1:3306/student?useSSL=FALSE&serverTimezone=UTCuser=rootpassword=root使用eclipse编写properties文件的时候注意将编码格式改为utf-8,否则会因为...

2020-03-25 15:43:57 1263

原创 leetcode每日一题—1160. 拼写单词

题目描述:思想:刚看题的时候想用暴力破解来算,可是运行内存和运行时间都会比较长。这个题由于提示里说明“所有字符都只包含小写英文字母”,借用leetcode中的一句话:凡是和“变位词”、“字母顺序打乱”相关的题目,都考虑统计字母出现的次数。首先挨个统计字符串数组中每个字符串字母出现的次数;然后统计字母表里每个字母出现的次数。如果字符串数组里的字符串统计的次数大于字母表里的次数,则不计算;...

2020-03-17 17:19:11 106

原创 leetcode-剑指offer-04二维数组中查找

题目描述:①暴力破解:class Solution { public boolean findNumberIn2DArray(int[][] matrix, int target) { boolean b = false; Label:for (int i = 0; i < matrix.length; i++) { for (int j = 0...

2020-03-17 16:07:45 80

原创 leetcode-数组中重复的数字

题目描述:题解1:分析:暴力破解:使用双重循环,挨个判断重复的数字。效率太低class Solution { public int findRepeatNumber(int[] nums) { int num; for(int i=0;i<nums.length;i++){ for(int j=i+1;j<nums.length;j++)...

2020-03-13 17:14:54 278

hive和oracle函数对照表.xlsx

包含hive和oracle的常用函数对比关系表,可以用于查询hive函数转换成oracle函数,或者oracle函数转换hive函数之间的相互转换。

2020-07-29

空空如也

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

TA关注的人

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