
Hive
cts618
算法高级工程师
展开
-
Hive 自定义UDF函数示例
Hive 自定义UDF函数示例原创 2022-10-14 14:33:22 · 320 阅读 · 0 评论 -
Hive高阶聚合函数用法示例
Hive高阶聚合函数用法示例原创 2022-10-11 12:57:06 · 462 阅读 · 0 评论 -
DataGrip向Hive库表插入SQL语句报错: Execution Error, return code 30041 from org.apache.hadoop.hive.ql....
DataGrip向Hive插入SQL语句报错:[2022-09-30 13:48:35] [42000][30041] Error while processing statement: FAILED: Execution Error, return code 30041 from org.apache.hadoop.hive.ql.exec.spark.SparkTask. Failed to create Spark client for Spark session 2fefd48c-83b9-40b0原创 2022-09-30 14:18:59 · 2051 阅读 · 2 评论 -
Hive行列转换
Hive行列转换原创 2022-09-29 11:31:17 · 336 阅读 · 0 评论 -
notepad++设置中文界面
notepad++设置中文界面原创 2022-09-14 09:58:09 · 4593 阅读 · 1 评论 -
Hive正则表达式3
表达式B中的匹配字符只能是 _ 和 %,_ 表示任意单个字符,% 表示任意数量的字符。select 'hellohive' like 'hello%'; –返回结果:trueselect 'hellohive' like 'hello_'; –返回结果:falseselect 'hellohive' like 'hello____'; –返回结果:true...原创 2021-06-17 07:54:13 · 206 阅读 · 0 评论 -
Hive正则表达式2
("[^ ]") ("-[^ ]")^ 一个字符串的开始$ 一个字符串的结束“^The” “There” “The cat”$e 以字符e结尾的字符串一个或者一序列字符重复出现的次数0次或多次 {0,}1次或多次 {1,}? 至多出现一次 0次或者1次 {0,1}{}使用范围,用大括号,表示重复出现次数的范围“ab{2}” 表示一个字符串有一个a跟着2个bab{2,4}[] 表示某些字符允许在一个字符串中某一个特定位置出现1:标表示一个以字母开头的字符串| 表示原创 2021-06-17 07:45:55 · 560 阅读 · 0 评论 -
Hive正则表达式
(*)字符:星号匹配0个或多个字符,在它之前必须有内容。如:mysql> select 'xxxyyy' regexp 'x*';a*可以写成a{0,}a+可以写成a{1,}a?可以写成a{0,1}**注:在{}内只有一个整型参数i,表示字符只能出现i次;在{}内有一个整型参数i,后面跟一个“,”,“,”表示字符可以出现i次或i次以上;在{}内只有一个整型参数i,后面跟一个“,”,再跟一个整型参数j,表示字符只能出现i次以上,j次以下(包括i次和j次)。其中的整型参数必须大于等于0,原创 2021-06-17 07:30:40 · 188 阅读 · 0 评论 -
union和union all区别以及实例
union和union all区别union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;union All:对两个结果集进行并集操作,包括重复行,不进行排序;一、创建Test数据库和表Create database Test; #建库use Test; #选择库#创建表 Create table Table1 ( id int not null, name varchar(20) not null );原创 2021-05-24 07:50:29 · 334 阅读 · 0 评论 -
数仓经典面试题四:统计每个店铺每个月的营业额以及截止到当前的历史累计额
一、数据准备store.txt数据:名称,月份,资金a,01,150a,01,200b,01,1000b,01,800c,01,250c,01,220b,01,6000a,02,2000a,02,3000b,02,1000b,02,1500c,02,350c,02,280a,03,350a,03,250二、创建表:create table t_store(name string,months int,money int )row format delimi原创 2021-05-23 09:28:26 · 539 阅读 · 0 评论 -
Mysql--笛卡尔积案例
1.创建表以及加载数据:CREATE TABLE `r` ( `a` bigint(255) DEFAULT NULL, `b` bigint(255) DEFAULT NULL, `c` bigint(255) DEFAULT NULL, `d` bigint(255) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `r`(`a`, `b`, `c`, `d`) VALUES (6, 3, 1,5);I原创 2021-05-21 21:26:31 · 2184 阅读 · 0 评论 -
Hive排名函数示例
–函数说明RANK() 排序相同时会重复,总数不会变DENSE_RANK() 排序相同时会重复,总数会减少ROW_NUMBER() 会根据顺序计算–建表CREATE DATABASE IF NOT EXISTS TEST;CREATE TABLE TEST.COSTITEM( NAME STRING,ORDERDATE DATE,COST STRING);–插入数据INSERT INTO TEST.COSTITEM VALUES ('jack','2020-01-01','10'原创 2021-05-21 20:15:50 · 234 阅读 · 0 评论 -
Hive窗口函数实例
– 建表CREATE DATABASE IF NOT EXISTS TEST;CREATE TABLE TEST.COSTITEM( NAME STRING,ORDERDATE DATE,COST STRING);– 数据加载INSERT INTO TEST.COSTITEM VALUES ('jack','2020-01-01','10');INSERT INTO TEST.COSTITEM VALUES ('tony','2020-01-02','15');INSERT IN原创 2021-05-21 20:05:39 · 115 阅读 · 0 评论 -
数仓经典面试题三:用户留存
题目要求:如何计算留存率留存率是考察企业留住用户的能力,我们经常会计算次日留存、2日留存、7日留存等,如果现在让你用SQL实现,该怎么操作呢?表部分数据如下:留存数据字段说明:用户id:用户唯一标识;APP应用名称:是手机中的某个应用,例如相机、微信、大众点评等。启动时长:某一天中使用某应用多长时间(分钟)。启动次数:某一天中启动了某应用多少次。登陆时间:使用手机的日期。例如2018-05-01。现在该手机厂商想要分析手机中的应用(相机)的活跃情况,需统计如下数据:某日活跃用户(用户原创 2021-05-21 15:33:29 · 788 阅读 · 0 评论 -
数仓经典面试题二:计算作弊次数(主要考察LAG、 LEAD函数的用法)
题目:如何计算作弊次数网站安全是公司考虑的主要因素之一,为了保证网站不被恶意攻击,现模拟以下规则:对于同一用户(uid)如果2分钟之内重新登录,则判断为作弊,统计哪些用户行为,并计算用户作弊次数**需求分析**:主要是计算上一次登录和本次登录的时间差值,同列数据无法计算,如何转换成两列数据计算需求实现:(1)创建表create table lag_table( id int primary key, uid int not null, login_time datetime原创 2021-05-21 11:40:13 · 386 阅读 · 6 评论 -
SQL FORMAT() 函数
FORMAT() 函数FORMAT() 函数用于对字段的显示进行格式化。SELECT FORMAT(column_name,format) FROM table_name;注意:column_name 必需。要格式化的字段 format 必需。规定格式。例子:SELECT name, url, DATE_FORMAT(Now(),’%Y-%m-%d’) AS dateFROM Websites;参数的意思:%H 小时(以00-23来表示)。 %I 小时(以01-12原创 2021-05-21 11:23:27 · 3241 阅读 · 0 评论 -
计算每年每月累计销售额
1)如下图标:2)计算每年每月累计销售额select 年份, 月份, sum(销售额), sum(sum(销售金额)over(order by 月份))累计销售额from sale_loggroup by 年份,月份;原创 2021-05-21 08:53:53 · 1610 阅读 · 0 评论 -
数仓经典面试题一:用户行为分析
题目要求:有如下表记录:需求:1,查询出每个用户最近一次登录的记录(每个用户只显示一条最近登录记录)及给出每个用户的登录总次数(同一天多次登录认为是一次)2,生成一张临时表,表名自定,四列数据,分别是Name,LastLogon,Num_logontime(要求:按时间给出每个人的登录次数,登录时间最早的为1,之后分别为2,3,4等),Num_logonday(要求:按天给出每个人的登录次数,同一天多次登录认为是同一次,最早的一次标记为1,之后的依次类推)需求实现:1,创建表create原创 2021-05-20 12:54:01 · 417 阅读 · 1 评论 -
order by、sort by、distribute by、cluster by的区别以及示例
Order By:全局排序,一个ReducerSort By:每个Reducer内部进行排序,对全局结果集来说不是排序。Distribute By:类似MR中partition,进行分区,结合sort by使用。注意:*Hive要求DISTRIBUTE BY语句要写在SORT BY语句之前*对于distribute by进行测试,一定要分配多reduce进行处理,否则无法看到distribute by的效果。Cluster By:当distribute by和sorts by字段相同时,可以使用原创 2021-05-18 21:33:08 · 425 阅读 · 0 评论 -
unix_timestamp 时间戳函数用法(hive)
一、unix_timestamp函数用法1)返回当前时间的时间戳select unix_timestamp();2)如果参数date满足yyyy-MM-dd HH:mm:ss形式,则可以直接unix_timestamp(string date) 得到参数对应的时间戳或者满足yyyy-MM-dd形式select unix_timestamp('2018-12-05 01:10:00','yyyy-MM-dd HH:mm:ss');select unix_timestamp('2018-12-05原创 2021-05-18 20:57:50 · 2545 阅读 · 0 评论 -
Hive面试题
题目:有一个线上服务器访问日志格式如下:需求:求11月9号下午14点(14-15点),访问api/user/login接口的top10的ip地址数据集2016-11-09 14:22:05 /api/user/login 110.23.5.332016-11-09 11:23:10 /api/user/detail 57.3.2.162016-11-09 14:59:40 /api/user/login 200.6.5.1662016-11-09 14:22:05 /api/user/logi原创 2021-05-18 20:54:18 · 182 阅读 · 0 评论 -
小米数仓笔试题
1,窗口函数2,三个By3,等值连接join(1)内连接(2)左外连接(3)右外连接(4)满外连接(5)多表连接4,排名函数原创 2021-05-18 17:56:52 · 385 阅读 · 1 评论 -
数据分析面试题二:用户留存
题目如下:1,创建表注:创建表和库的时候最好指定存储格式和字符集,避免中文乱码create database xiangji;use xiangji;create table userinfo(uid varchar(10),app_name varchar(20),duration int(10),times int(10),dayno varchar(30));3,插入数据insert into userinfo values('01',"相机",1,2,'2018-05原创 2021-05-12 08:54:11 · 145 阅读 · 0 评论 -
Hive函数
Hive函数整体分类Hive官方文档地址:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF 转载地址:https://zhuanlan.zhihu.com/p/1025021751、Hive函数介绍以及内置函数查看1)查看系统自带的函数hive> show functions;2)显示自带的函数的用法hive> desc function upper;3)详细显示自带的函数的用原创 2021-05-14 09:10:56 · 338 阅读 · 0 评论 -
日期函数简写
原创 2021-04-15 10:32:07 · 105 阅读 · 0 评论 -
北京京创曙光科技有限公司SQL笔试题
1、表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sqlSelect a,b,c,d from t order by c desc limit 20,10;2、表T(a,b,c,d)和表T1(a1,b1,c1,d1),表T中a字段是T1中的a1的外键,请用T1表中的c1,d1更新表T的c,d.update T,T1 set T.c=T1.c1,T.d=T1.d1 where T.a=T1.a13、已知表ODM_JYBB有year、month和am字段,如下通过SQ原创 2021-04-15 09:28:21 · 1700 阅读 · 2 评论 -
CONVERT函数全部用法
格式:CONVERT(data_type,expression_r_r[,style])说明:(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到的函数的3个参数,第1个参数为,转换后的大小,第2个为转换日期的字段或函数,第3个为转换的格式,具体如下:0 | 0 or 100 | mon dd yyyy hh:miAM(或PM)1 | 101 | mm/dd/yy2 | 102 | yy-mm-dd3 |原创 2021-04-15 09:15:16 · 60171 阅读 · 0 评论 -
大众(SQL)面试题
要求:写出可在Microsoft SQL server上执行的SQL脚本。执行一次,输出所有查询计算结果。创建临时表是表写入DEMO数据(可以不根据Excel自行创造DEMO数据)。计算过程也可使用临时表DEMO:统计除豪车外,销售最差的车车辆按批销售,每次销售若干靓同型号车,表中就记录增加一条记录问:查询总销量大于100,且总销量最少的3个型号的车及其销售量1,创建临时数据库;create database if not exists tmp;2,使用tmp数据库;use tmp;原创 2021-03-29 17:20:04 · 603 阅读 · 1 评论 -
Superset安装部署
1,创建software文件夹sudo mkdir software2,授权sudo chown atguigu:atguigu software/3,创建superset文件夹mkdir superset4,将Miniconda3-latest-Linux-x86_64.sh上传到/opt/software/superset路径下检验上传是否成功:进入到/opt/software/superset目录cd /opt/software/superset5,执行以下命令进行安装,原创 2021-03-21 18:39:21 · 317 阅读 · 1 评论 -
union和union all区别
union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;union All:对两个结果集进行并集操作,包括重复行,不进行排序;*下面进行简单的测试(因为是测试,所以sql代码写的很简单,没有什么很严格的规范,只是为了理解这两者之间的区别,严格的标准写法应该先判断数据库是否存在,表是否存在等等约束)一、创建测试数据库:create database Test; #建库二、选择数据库:use Test; #选择库三、 创建表1、表2:原创 2021-03-03 09:44:36 · 157 阅读 · 0 评论 -
libc.so.6(GLIBC_2.14)(64bit) is needed by mysql-community-libs-5.7.16-1.el7.x86_64
报错信息:解决办法(把缺少的依赖安装上)安装依赖步骤:1,yum list glibc*2,安装需要的软件包(所有过程中都任何选择都选Y)yum install glibc.i6863,查找需要的包 yum list libstdc++*4,安装需要的两个软件包yum install libstdc++.x86_64yum install libstdc++.i6865,再安装一个不知名的软件包。```javayum install libaio.so.16,问原创 2021-01-20 10:22:42 · 2666 阅读 · 0 评论 -
hiveSQL案例
1-请详细描述将一个有结构的文本文件student.txt导入到一个hive表中的步骤,及其关键字•假设student.txt 有以下几列:id,name,gender三列•1-创建数据库 create database student_info;•2-创建hive表 studentcreate external table student_info.student(id string ...原创 2019-12-06 18:58:31 · 1193 阅读 · 0 评论 -
hive窗口函数
一数据准备cookie1,2015-04-10,1cookie1,2015-04-11,5cookie1,2015-04-12,7cookie1,2015-04-13,3cookie1,2015-04-14,2cookie1,2015-04-15,4cookie1,2015-04-16,4创建数据库及表create database if not exists cookie;...原创 2019-12-05 13:15:04 · 122 阅读 · 0 评论 -
hive分析窗口函数
https://www.cnblogs.com/ZackSun/p/9713435.html原创 2019-12-05 10:53:20 · 120 阅读 · 0 评论 -
mysql修改字符编码
1.进入mysql ,执行 show create database hive 查看hive 数据库当前编码,如果是utf8 则执行下面sql: alter database hive default character set latin1 将 hive 数据库默认编码改成 latin12.为了以下支持hive建表时插入中文注释 需要在mysql中做如下设...原创 2019-11-30 17:58:45 · 193 阅读 · 0 评论 -
永久修改MySQL字符编码
1.登录数据库,查看数据库字符编码表 :查看编码SQL:SHOW VARIABLES LIKE ‘character%’;show variables like ‘char%’;2.退出数据库,修改mysql配置文件,改变数据库字符编码 :vi /etc/my.cnf3.进入配置文件后增加如下代码,然后保存退出default-character-set=utf8characte...原创 2019-11-30 17:44:26 · 3483 阅读 · 0 评论 -
hive乱码问题
在线安装mysql的修改方式①修改编码,设置为utf-8在 mysql 配置文件/etc/my.cnf(不需要拷贝)中[mysqld]的下面增加以下内容init_connect='SET collation_connection = utf8_unicode_ci'init_connect='SET NAMES utf8'character-set-server=utf8collati...原创 2019-11-30 14:36:27 · 140 阅读 · 0 评论 -
hive表注释中文乱码问题
1.修改hive存储在mysql里的元数据相关信息a. 修改字段注释字符集alter table COLUMNS_V2 modify columnCOMMENT varchar(256) character set utf8;b. 修改表注释字符集alter table TABLE_PARAMS modifycolumn PARAM_VALUE varchar(4000...原创 2019-11-30 14:11:32 · 175 阅读 · 0 评论 -
订单拉链表
拉链表设计图:1、创建数据库create database ods;create database dwd;2、在ods层中创建订单表2.1、创建ods的订单表初始表(相当于是从mysql出来数据的,懒得去走mysql)create table ods_order_init(`id` string COMMENT '订单编号',`order_status` string COM...原创 2019-11-28 10:33:39 · 413 阅读 · 0 评论 -
hive表中字段出现乱码问题
原因:Hive元数据存储在Mysql中采用默认latin1编码,导致开发环境出现了这个问题,解决方法如下所示:1.进入mysql ,执行 show create database hive 查看hive 数据库当前编码,如果是utf8 则执行下面sql: alter database hive default character set latin1 将 ...原创 2019-11-28 08:54:50 · 928 阅读 · 1 评论