hive sql 行列转换 开窗函数 炸裂函数

hive sql 行列转换 开窗函数 炸裂函数

准备原始数据集

学生表 student.csv
讲师表 teacher.csv
课程表 course.csv
分数表 score.csv
员工表 emp.csv
雇员表 employee.csv
电影表 movie.txt

学生表 student.csv

001,彭于晏,1995-05-16,男
002,胡歌,1994-03-20,男
003,周杰伦,1995-04-30,男
004,刘德华,1998-08-28,男
005,唐国强,1993-09-10,男
006,陈道明,1992-11-12,男
007,陈坤,1999-04-09,男
008,吴京,1994-02-06,男
009,郭德纲,1992-12-05,男
010,于谦,1998-08-23,男
011,潘长江,1995-05-27,男
012,杨紫,1996-12-21,女
013,蒋欣,1997-11-08,女
014,赵丽颖,1990-01-09,女
015,刘亦菲,1993-01-14,女
016,周冬雨,1990-06-18,女
017,范冰冰,1992-07-04,女
018,李冰冰,1993-09-24,女
019,邓紫棋,1994-08-31,女
020,宋丹丹,1991-03-01,女

讲师表 teacher.csv

1001,张高数
1002,李体音
1003,王子文
1004,刘丽英

课程表 course.csv

01,语文,1003
02,数学,1001
03,英语,1004
04,体育,1002
05,音乐,1002

分数表 score.csv

001,01,94
002,01,74
004,01,85
005,01,64
006,01,71
007,01,48
008,01,56
009,01,75
010,01,84
011,01,61
012,01,44
013,01,47
014,01,81
015,01,90
016,01,71
017,01,58
018,01,38
019,01,46
020,01,89
001,02,63
002,02,84
004,02,93
005,02,44
006,02,90
007,02,55
008,02,34
009,02,78
010,02,68
011,02,49
012,02,74
013,02,35
014,02,39
015,02,48
016,02,89
017,02,34
018,02,58
019,02,39
020,02,59
001,03,79
002,03,87
004,03,89
005,03,99
006,03,59
007,03,70
008,03,39
009,03,60
010,03,47
011,03,70
012,03,62
013,03,93
014,03,32
015,03,84
016,03,71
017,03,55
018,03,49
019,03,93
020,03,81
001,04,54
002,04,100
004,04,59
005,04,85
007,04,63
009,04,79
010,04,34
013,04,69
014,04,40
016,04,94
017,04,34
020,04,50
005,05,85
007,05,63
009,05,79
015,05,59
018,05,87

员工表 emp.csv

7369,张三,研发,800.00,30
7499,李四,财务,1600.00,20
7521,王五,行政,1250.00,10
7566,赵六,销售,2975.00,40
7654,侯七,研发,1250.00,30
7698,马八,研发,2850.00,30
7782,金九,行政,2450.0,30
7788,银十,行政,3000.00,10
7839,小芳,销售,5000.00,40
7844,小明,销售,1500.00,40
7876,小李,行政,1100.00,10
7900,小元,讲师,950.00,30
7902,小海,行政,3000.00,10
7934,小红明,讲师,1300.00,30
7934,小红,讲师,1300.00,

雇员表 employee.csv

张无忌,男,1980/02/12,2022/08/09,销售,3000,12000,阿朱_小昭,张小无:8_张小忌:9
赵敏,女,1982/05/18,2022/09/10,行政,9000,2000,阿三_阿四,赵小敏:8
宋青书,男,1981/03/15,2022/04/09,研发,18000,1000,王五_赵六,宋小青:7_宋小书:5
周芷若,女,1981/03/17,2022/04/10,研发,18000,1000,王五_赵六,宋小青:7_宋小书:5
郭靖,男,1985/03/11,2022/07/19,销售,2000,13000,南帝_北丐,郭芙,5_郭襄:4
黄蓉,女,1982/12/13,2022/06/11,行政,12000,null,东邪_西毒,郭芙,5_郭襄:4
杨过,男,1988/01/30,2022/08/13,前台,5000,null,郭靖_黄蓉,杨小过:2
小龙女,女,1985/02/12,2022/09/24,前台,6000,null,张三_李四,杨小过:2

电影表 movie.txt

《疑犯追踪》-悬疑,动作,科幻,剧情
《Lie to me》-悬疑,警匪,动作,心理,剧情
《战狼2》-战争,动作,灾难

订单表 order.csv

1,1001,小元,2022-01-01,10
2,1002,小海,2022-01-02,15
3,1001,小元,2022-02-03,23
4,1002,小海,2022-01-04,29
5,1001,小元,2022-01-05,46
6,1001,小元,2022-04-06,42
7,1002,小海,2022-01-07,50
8,1001,小元,2022-01-08,50
9,1003,小辉,2022-04-08,62
10,1003,小辉,2022-04-09,62
11,1004,小猛,2022-05-10,12
12,1003,小辉,2022-04-11,75
13,1004,小猛,2022-06-12,80
14,1003,小辉,2022-04-13,94

创建数据库和数据表

create database chap06;
use chap06;
-- 学生表 student.csv
create external table student (stu_id string comment '学生ID',stu_name string comment '学生姓名',birthday string comment '出生日期',gender string comment '学生性别'
)row format delimited fields terminated by ','lines terminated by '\n'stored as textfilelocation '/quiz03/student';load data local inpath '/root/data/data02/student.csv' overwrite into table student;select * from student;-- 讲师表 teacher.csv
create external table teacher (tea_id string comment '课程ID',tea_name string comment '课程名称'
)row format delimited fields terminated by ','lines terminated by '\n'stored as textfilelocation '/quiz03/teacher';load data local inpath '/root/data/data02/teacher.csv' overwrite into table teacher;select * from teacher;-- 课程表 course.csv
create external table course (course_id string comment '课程ID',course_name string comment '课程名称',tea_id string comment '讲师ID'
)row format delimited fields terminated by ','lines terminated by '\n'stored as textfilelocation '/quiz03/course';load data local inpath '/root/data/data02/course.csv' overwrite into table course;select * from course;-- 分数表 score.csv
create external table score (stu_id string comment '学生ID',course_id string comment '课程ID',score int comment '成绩'
)row format delimited fields terminated by ','lines terminated by '\n'stored as textfilelocation '/quiz03/score';load data local inpath '/root/data/data02/score.csv' overwrite into table score;
select * from score;-- 员工表 emp.csv
create external table emp (emp_id int comment '员工ID',emp_name string comment '员工姓名',emp_job string comment '员工岗位',emp_salary decimal(8,2) comment '员工薪资',dept_id int comment '员工隶属部门ID'
)row format delimited fields terminated by ','lines terminated by '\n'stored as textfilelocation '/quiz01/emp';
load data local inpath '/root/data/data02/emp.csv' overwrite into table emp;
select * from emp;-- 雇员表 employee.csv
create external table employee(name string comment '姓名',sex  string comment '性别',birthday string comment '出生年月',hiredate string comment '入职日期',job string comment '岗位',salary int comment '薪资',bonus int comment '奖金',friends array<string> comment '朋友',children map<string,int> comment '孩子'
)row format delimited fields terminated by ','collection items terminated by '_'map keys terminated by ':'lines terminated by '\n'stored as textfilelocation '/quiz04/employee';
load data local inpath '/root/data/data02/employee.csv' into table employee;
select * from employee;-- 电影表 movie.txt
create external table movie(name string comment '电影名称',category string comment '电影分类'
)row format delimited fields terminated by '-'lines terminated by '\n'stored as textfilelocation '/quiz04/movie';
load data local inpath '/root/data/data02/movie.txt' into table movie;
select * from movie;-- 订单表 order.csv
create external table `order`
(order_id     string comment '订单id',user_id      string comment '用户id',user_name    string comment '用户姓名',order_date   string comment '下单日期',order_amount int comment '订单金额'
)row format delimited fields terminated by ','lines terminated by '\n'stored as textfilelocation '/quiz04/order';
load data local inpath '/root/data/data02/order.csv' into table `order`;
select * from `order`;

行列转换

列转行

create table test (stu_name string,course_name string,score int
);
insert into test values ('张三','语文','80'),('张三','数学','90'), ('李四','语文','85'),('李四','数学','95');
select * from test;
select stu_name,max(case when course_name = '语文' then score end) as yuwen,max(case when course_name = '数学' then score end) as shuxuefrom test group by stu_name;

行列转行 列转行

-- 多个值转为集合 collect_list 不会去重
select collect_list(emp_job) job_list from emp;
-- 多个值转为集合 collect_set 会去重
select collect_set(emp_job) job_set from emp;
-- size 获取结合中元素的数量
select size(collect_set(emp_job)) job_count from emp;
-- concat_ws 将多个数据 以分隔符形式 拼接 concat_ws(分隔符,数据1,数据2,...)
select concat_ws('-',collect_set(emp_job)) job_string from emp;
-- split 字符串切分 以分隔符切分字符串 为集合
select split(concat_ws('-',collect_set(emp_job)),'-') job_item from emp;

行专列

create table sales (emp_name string,january int,february int,march int
);
insert into sales values ('张三',1000,2000,3000),('李四',1500,2500,3500);
select * from sales;

行列转换 行转列

将转换后的结果还原

select t1.emp_name,sale_list[0] january,sale_list[1] february,sale_list[2] marchfrom(select t.emp_name,collect_list(sale) sale_list from(select emp_name,'january' yue, january sale from salesunion allselect emp_name,'february' yue,february sale from salesunion allselect emp_name,'march' yue,march sale from sales) tgroup by t.emp_name) t1;

UDF UDTF UDAF

UDF,即用户定义函数(user-defined function),作用于单行数据,并且产生一个数据行作为输出。
Hive中大多数函数都属于这一类,比如数学函数和字符串函数。UDF函数的输入与输出值是1:1关系。

UDTF,即用户定义表生成函数(user-defined table-generating function),
作用于单行数据,并且产生多个数据行。UDTF函数的输入与输出值是1:n的关系。

UDAF,用户定义聚集函数(user-defined aggregate function),作用于多行数据,产生一个输出数据行。
Hive中像COUNT、MAX、MIN和SUM这样的函数就是聚集函数。UDAF函数的输入与输出值是n:1的关系。

explode

array

select explode(array('java','python','scala','go')) as course;

map

select explode(map('name','李昊哲','gender','1')) as (key,value);

posexplode

select posexplode(array('java','python','scala','go')) as (pos,course);

inline

select inline(array(named_struct('id',1,'name','李昊哲','gender','1'),named_struct('id',2,'name','李哲','gender','0'),named_struct('id',3,'name','李大宝','gender','1')))as (id,name,gender);

lateral view

select * from employee lateral view explode(friends) t as friend;
select * from employee lateral view explode(children) t as children_name,children_age;
select * from employeelateral view explode(friends) t1 as friendlateral view explode(children) t2 as children_name,children_age;
select name, sex, birthday, hiredate, job, salary, bonus, friend,children_name,children_age  from employee elateral view explode(friends) t1 as friendlateral view explode(children) t2 as children_name,children_age;

UDTF 案例

根据电影信息表,统计各分类的电影数量

select cate,count(name) as quantity  from movielateral view explode(split(category,',')) tmp as categroup by cate;

窗口函数(开窗函数)

能为每行数据划分一个窗口,然后对窗口范围内的数据进行计算,最后将计算结果返回给该行
Function(arg1,…, argn) OVER ([PARTITION BY <…>] [ORDER BY <…>] [<window_expression>])
其中Function(arg1,…, argn) 可以是下面分类中的任意一个
聚合函数:比如sum max min avg count等
分析函数:比如lead lag first_value last_value等
排序函数:比如row_number rank dense_rank等
OVER [PARTITION BY <…>] 类似于group by 用于指定分组 每个分组你可以把它叫做窗口
如果没有PARTITION BY 那么整张表的所有行就是一组
[ORDER BY <…>] 用于指定每个分组内的数据排序规则 支持ASC、DESC
[<window_expression>] 用于指定每个窗口中 操作的数据范围 默认是窗口中所有行

聚合函数

聚合函数
rows 基于行
range 基于值
函数() over(rows between and 3)

  • unbounded preceding 表示从前面的起点
  • number preceding 往前
  • current row 当前行
  • number following 往后
  • unbounded following 表示到后面的终点

统计每个用户截至每次下单的累计下单总额

select *,sum(order_amount) over (partition by user_id ,substr(order_date,1,7)order by order_daterows between unbounded preceding and current row) sum_order_amountfrom `order`;
select *,sum(order_amount) over (partition by user_id ,substr(order_date,1,7)order by order_daterows unbounded preceding) sum_order_amountfrom `order`;

统计每个用户截至每次下单的当月累积下单总额

select *,sum(order_amount) over (partition by user_id ,substr(order_date,1,7)order by order_daterows between unbounded preceding and unbounded following) sum_order_amountfrom `order`;

最近三笔订单总金额

  • 当前订单金额与前两笔订单金额的总和
  • 当前订单金额与后两笔订单金额的总和
  • 当前订单金额与前一笔订单和后一笔订单金额的总和
当前订单金额与前两笔订单金额的总和
select *,sum(order_amount) over (partition by user_idorder by order_daterows 2 preceding) sum_order_amountfrom `order`;
当前订单金额与后两笔订单金额的总和
select *,sum(order_amount) over (partition by user_idorder by order_daterows 2 following) sum_order_amountfrom `order`;
当前订单金额与前一笔订单和后一笔订单金额的总和
select *,sum(order_amount) over (partition by user_idorder by order_daterows between 1 preceding and 1 following) sum_order_amountfrom `order`;

分析函数 lag lead first_value last_value

lag lead

lag() over() 与 lead() over() 函数是跟偏移量相关的两个分析函数,
通过这两个函数可以在一次查询中取出同一字段的前 N 行的数据 (lag) 和后 N 行的数据 (lead) 作为独立的列,
从而更方便地进行进行数据过滤。这种操作可以代替表的自联接,并且 LAG 和 LEAD 有更高的效率。
over() 表示 lag() 与 lead() 操作的数据都在 over() 的范围内,可以使用 partition by 语句(用于分组) order by 语句(用于排序)。
partition by a order by b 表示以 a 字段进行分组,再 以 b 字段进行排序,对数据进行查询。
例如:lag(field, num, defaultvalue) field 需要查找的字段,num 往前查找的 num 行的数据,defaultvalue 没有符合条件的默认值
例如:lead(field, num, defaultvalue) field 需要查找的字段,num 往后查找的 num 行的数据,defaultvalue 没有符合条件的默认值

统计每个用户每次下单距离上次下单相隔的天数(首次下单按0天算)
select order_id, user_id, user_name, order_date, order_amount from (select order_id, user_id, user_name, order_date, order_amount,lag(order_date,1,order_date) over (partition by user_id order by order_date) pre_order_datefrom `order`) t where datediff(order_date,pre_order_date) = 0;
每个用户每个月首笔订单时间
select order_id, user_id, user_name, order_date, order_amount from (select order_id, user_id, user_name, order_date, order_amount,lag(order_date,1,order_date) over (partition by user_id,substr(order_date,1,7) order by order_date) pre_order_datefrom `order`) t where datediff(order_date,pre_order_date) = 0;
每个用户每个月最后笔订单时间
select order_id, user_id, user_name, order_date, order_amount from (select order_id, user_id, user_name, order_date, order_amount,lead(order_date,1,order_date) over (partition by user_id,substr(order_date,1,7) order by order_date) next_order_datefrom `order`) t where datediff(order_date,next_order_date) = 0;
每个岗位先先入职的远哥和后入在的员工工资差
select name, sex, birthday, hiredate, job, salary, bonus, friends, children, new_salary,(salary - new_salary) salary_diff from (select name, sex, birthday, hiredate, job, salary, bonus, friends, children,lead(salary,1,salary) over (partition by job order by hiredate) new_salaryfrom employee) t;

first_value last_value

first_value 取每个分区内某列的第一个值
语法:first_value(col,true/false) over (partition by col1 order by col2)
第二个参数为true,跳过空值(默认为false)

last_value 取每个分区内某列的最后一个值
语法:last_value(col,true/false) over (partition by col1 order by col2)
第二个参数为true,跳过空值(默认为false)

每个用户每个月首笔订单时间
select order_id, user_id, user_name, order_date, order_amount,first_value(order_date) over (partition by user_id,substr(order_date,1,7) order by order_date) first_order_valuefrom `order`;
每个用户每个月最后笔订单时间
select order_id, user_id, user_name, order_date, order_amount,last_value(order_date) over (partition by user_id,substr(order_date,1,7) order by order_daterows between current row and unbounded following) last_order_valuefrom `order`;
每个用户每个月首笔订单时间和最后笔订单时间
select order_id, user_id, user_name, order_date, order_amount,first_value(order_date) over (partition by user_id,substr(order_date,1,7) order by order_date) first_order_value,last_value(order_date) over (partition by user_id,substr(order_date,1,7) order by order_daterows between current row and unbounded following) last_order_valuefrom `order`;
select order_id, user_id, user_name, order_date, order_amount, first_order_value, last_order_value from(select order_id, user_id, user_name, order_date, order_amount,first_value(order_date) over (partition by user_id,substr(order_date,1,7) order by order_date) first_order_value,last_value(order_date) over (partition by user_id,substr(order_date,1,7) order by order_daterows between current row and unbounded following) last_order_valuefrom `order`) t where order_date = first_order_value or order_date = last_order_value;

排序函数

分组排序取TopN

查询各科成绩前五名的学生

select a.course_id,a.stu_id,a.score from score aleft join score bon a.course_id = b.course_id and a.score <= b.scoregroup by a.stu_id,a.course_id,a.scorehaving count(a.stu_id) <=5order by a.course_id,a.score desc;
select S1.course_id,s1.stu_id,s1.score from score s1 where(select count(*) from score s2where s2.course_id=s1.course_id AND s2.score > s1.score) <= 5 order by s1.course_id,s1.score desc;
row_number

row_number() over () 连续序号
over()里头的分组以及排序的执行晚于 where 、group by、order by 的执行。

select * from(select course_id, stu_id,  score,row_number() over (partition by course_id order by score desc ) as mumfrom score) t where mum <= 5;
rank

rank() over () 排名 跳跃排序 序号不是连续的

select * from(select course_id, stu_id,  score,rank() over (partition by course_id order by score desc ) as mumfrom score) t where mum <= 5;
dense_rank

dense_rank() over () 排名 连续排序

select * from(select course_id, stu_id,  score,dense_rank() over (partition by course_id order by score desc ) as mumfrom score) t where mum <= 5;
每个月每个消费总金额前三名的用户
select order_id, user_id, user_name, order_date, order_amount, total_order_amount, rank_total_order_amount from
(select order_id, user_id, user_name, order_date, order_amount, total_order_amount,dense_rank() over (partition by substr(order_date,1,7) order by total_order_amount desc) rank_total_order_amountfrom (select order_id, user_id, user_name, order_date, order_amount,sum(order_amount) over(partition by substr(order_date,1,7),user_id order by order_daterows between unbounded preceding and unbounded following) total_order_amountfrom `order`) t) t1 where rank_total_order_amount <= 3;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/197236.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云服务器 手动搭建WordPress(CentOS 8)

前提条件 已创建Linux操作系统的ECS实例&#xff0c;并且手动部署LNMP环境&#xff0c;具体操作&#xff0c;请参见手动部署LNMP环境&#xff08;CentOS 8&#xff09;。本教程使用的相关资源版本如下。 实例规格&#xff1a;ecs.c6.large 操作系统&#xff1a;公共镜像CentO…

qt 重载信号,使用““方式进行connect()调用解决方案

问题 在Qt中&#xff0c;重载的信号默认是无法使用&这种方式调用的。 因为&只能绑定到一个具体的信号&#xff0c;而重载的信号名称相同&#xff0c;编译器无法确定要绑定哪一个信号。 解决方案 如果非要使用&绑定重载的信号&#xff0c;可以使用函数指针进行转…

《2020年最新面经》—字节跳动Java社招面试题

文章目录 前言&#xff1a;一面&#xff1a;01、Java基础知识答疑&#xff0c;简单概述一下&#xff1f;02、倒排索引了解吗&#xff1f;使用Java语言怎么实现倒排&#xff1f;03、详细讲解一下redis里面的哈希表&#xff0c;常用的Redis哈希表命名有哪些&#xff0c;举例说明其…

战神传奇【我本沉默精修版】win服务端+双端+充值后台+架设教程

搭建资源下载:战神传奇【我本沉默精修版】win服务端双端充值后台架设教程-海盗空间

spark性能调优 | 默认并行度

Spark Sql默认并行度 看官网&#xff0c;默认并行度200 https://spark.apache.org/docs/2.4.5/sql-performance-tuning.html#other-configuration-options 优化 在数仓中 task最好是cpu的两倍或者3倍(最好是倍数&#xff0c;不要使基数) 拓展 在本地 task需要自己设置&a…

【算法挨揍日记】day29——139. 单词拆分、467. 环绕字符串中唯一的子字符串

139. 单词拆分 139. 单词拆分 题目描述&#xff1a; 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。 解题思路&am…

Python3.7+PyQt5 pyuic5将.ui文件转换为.py文件、Python读取配置文件、生成日志

1.实际开发项目时&#xff0c;是使用Qt Designer来设计UI界面&#xff0c;得到一个.ui的文件&#xff0c;然后利用PyQt5安装时自带的工具pyuic5将.ui文件转换为.py文件&#xff1a; pyuic5 -o mywindow.py mywindow.ui #先是py文件名&#xff0c;再是ui文件名样式图 QT5 UI&am…

《向量数据库指南》——2023云栖大会现场,向量数据库Milvus Cloud成关注焦点

近期,广受关注的2023 云栖大会正式收官,来自全球各地的开发者集聚一堂,共同探索 AI 时代的更多可能性。 云栖大会是由阿里巴巴集团主办的科技盛宴,是中国最早的开发者创新展示平台。据悉,今年云栖大会的主题为“计算,为了无法计算的价值”,共吸引了全球 44 个国家和地区…

BGP联盟和团体属性实验

目录 一、实验拓扑 二、实验要求 三、实验步骤 1、IP地址配置 2、ospf配置 3、BGP建邻 4、宣告网段 5、配置团体属性 一、实验拓扑 二、实验要求 1、按照图示配 IP 地址&#xff0c;R2&#xff0c;R3&#xff0c;R4&#xff0c;R5分别配 Loopbacke 口地址作为OSPF的Ro…

el-table固定表头(设置height)出现内容过多时不能滚动问题

主要原因是el-table没有div包裹 解决&#xff1a;加一个div并设置其高度和overflow 我自己的主要代码 <div class"contentTable"><el-tableref"table":data"tableData"striperow-dblclick"onRowDblclick"height"100%&q…

基于ChatGPT的文本生成艺术框架—WordArt Designer

WordArt Designer是一个基于gpt-3.5 turbo的艺术字生成框架&#xff0c;包含四个关键模块:LLM引擎、SemTypo、Styltypo和TextTypo模块。由gpt-3.5 turbo驱动的LLM引擎可以解释用户输入&#xff0c;从而将抽象概念转化为具体的设计。 SemTypo模块使用语义概念优化字体设计&…

vue 城市选择器的使用 element-china-area-data

一、Element UI 中国省市区级联数据 本文参考&#xff1a;element-china-area-data - npm 1. 安装 npm install element-china-area-data -S2. 使用 import { provinceAndCityData, regionData, provinceAndCityDataPlus, regionDataPlus, CodeToText, TextToCode } from e…

除了chatGPT网站外,国内有些可以使用的AI网站 文心一言 讯飞星火 豆包 通义千问 人工智能网站 AI网站

2023年随着人工智能技术的不断发展&#xff0c;AI网站如ChatGPT等越来越受到人们的关注。这些网站具有多种作用&#xff0c;可以帮助人们更方便地获取信息、解决问题&#xff0c;甚至进行创作。 首先&#xff0c;AI网站可以提供智能问答服务。与传统的搜索引擎相比&#xff0c…

fusion 360制作机械臂

参考教程&#xff1a;Industrial Robot ( PART - 5) - FUSION 360 TUTORIAL_哔哩哔哩_bilibili

Alien Skin Exposure2024免费版图片颜色滤镜插件

Alien Skin Exposure一款非常专业的图片后期处理软件&#xff0c;内含500多种照片滤镜。是一款图片后期处理功能非常强大的软件。这款软件可以对图片的后期效果做很好的处理。 打开Alien Skin Exposure软件&#xff0c;会显示下面这个界面&#xff0c;如图1. ExposureX8win-安…

新版mmdetection3d将3D bbox绘制到图像

环境信息 使用 python mmdet3d/utils/collect_env.py收集环境信息 sys.platform: linux Python: 3.7.12 | packaged by conda-forge | (default, Oct 26 2021, 06:08:21) [GCC 9.4.0] CUDA available: True numpy_random_seed: 2147483648 GPU 0,1: NVIDIA GeForce RTX 3090 …

要做好解决方案工程师,这些核心技能是必须要掌握的。

要做好解决方案工程师&#xff0c;以下是一些比较中肯的建议&#xff1a; 1、了解客户需求&#xff1a;解决方案工程师需要深入了解客户的需求和挑战&#xff0c;以便为他们提供定制化的解决方案。通过与客户交流、调研市场趋势等方式&#xff0c;了解客户的业务需求和目标&…

复合、委托、继承

1. 单例模式 静态实例对象在getInstance函数中定义&#xff0c;这样只有在调用函数时才会生成对象 2. 复合 1. 类中封装另一个类某些功能&#xff1b; 2. 构造、析构的调用过程 指明了复合中如何调用被包含类的构造函数&#xff0c;可以直接写在初始化列表位置&#xff1b; 3.…

机器学习第7天:逻辑回归

文章目录 介绍 概率计算 逻辑回归的损失函数 单个实例的成本函数 整个训练集的成本函数 鸢尾花数据集上的逻辑回归 Softmax回归 Softmax回归数学公式 Softmax回归损失函数 调用代码 参数说明 结语 介绍 作用&#xff1a;使用回归算法进行分类任务 思想&#xff1a;…

Egress Gateway

目录 文章目录 目录本节实战Egress Gateway访问外部服务1.Envoy 转发流量到外部服务2.控制对外部服务的访问3.直接访问外部服务总结 Egress 出口网关1.用 Egress gateway 发起 HTTP 请求2.用 Egress gateway 发起 HTTPS 请求 关于我最后 本节实战 实战名称&#x1f6a9; 实战&…