hive高级查询(2)
-- 分组查询
SELECT sex,SUM(mark) sum_mark
FROM score
GROUP BY sex
HAVING sum_mark > 555;
SELECT sex,sum_mark
FROM(
SELECT sex,SUM(mark) sum_mark
FROM score
GROUP BY sex
) t
WHERE sum_mark > 555;
SELECT AVG(gid),SUM(gid)/COUNT(gid) FROM student;
SELECT COUNT(gid),COUNT(DISTINCT gid) FROM student;
SELECT collect_list(gid),collect_set(gid) FROM student;
+------------+--------+--+
| _c0 | _c1 |
+------------+--------+--+
| [1,1,2,2] | [1,2] |
+------------+--------+--+
SELECT collect_list(gid),collect_list(DISTINCT gid) FROM student;结果同上
-- 窗口排名函数
SELECT *,
ROW_NUMBER() OVER(ORDER BY id) rn
FROM score;
+-----------+-------------+------------+-------------+-----+--+
| score.id | score.name | score.sex | score.mark | rn |
+-----------+-------------+------------+-------------+-----+--+
| 1 | a | male | 99.0 | 1 |
| 2 | b | female | 87.0 | 2 |
| 3 | c | male | 68.0 | 3 |
| 4 | d | female | 54.0 | 4 |
| 5 | e | male | 93.0 | 5 |
| 6 | f | female | 46.0 | 6 |
| 7 | g | male | 50.0 | 7 |
| 8 | h | female | 88.0 | 8 |
| 9 | i | male | 75.0 | 9 |
| 10 | j | male | 72.0 | 10 |
| 11 | k | female | 100.0 | 11 |
| 12 | l | female | 88.0 | 12 |
| 13 | m | male | 99.0 | 13 |
| 14 | n | female | NULL | 14 |
| 15 | o | male | NULL | 15 |
| 16 | p | female | 88.0 | 16 |
+-----------+-------------+------------+-------------+-----+--+
SELECT *,
rank() OVER(ORDER BY mark desc) rn
FROM score;
+-----------+-------------+------------+-------------+-----+--+
| score.id | score.name | score.sex | score.mark | rn |
+-----------+-------------+------------+-------------+-----+--+
| 11 | k | female | 100.0 | 1 |
| 1 | a | male | 99.0 | 2 |
| 13 | m | male | 99.0 | 2 |
| 5 | e | male | 93.0 | 4 |
| 16 | p | female | 88.0 | 5 |
| 12 | l | female | 88.0 | 5 |
| 8 | h | female | 88.0 | 5 |
| 2 | b | female | 87.0 | 8 |
| 9 | i | male | 75.0 | 9 |
| 10 | j | male | 72.0 | 10 |
| 3 | c | male | 68.0 | 11 |
| 4 | d | female | 54.0 | 12 |
| 7 | g | male | 50.0 | 13 |
| 6 | f | female | 46.0 | 14 |
| 14 | n | female | NULL | 15 |
| 15 | o | male | NULL | 15 |
+-----------+-------------+------------+-------------+-----+--+
SELECT *,
dense_rank() OVER(ORDER BY mark desc) rn
FROM score;
+-----------+-------------+------------+-------------+-----+--+
| score.id | score.name | score.sex | score.mark | rn |
+-----------+-------------+------------+-------------+-----+--+
| 11 | k | female | 100.0 | 1 |
| 1 | a | male | 99.0 | 2 |
| 13 | m | male | 99.0 | 2 |
| 5 | e | male | 93.0 | 3 |
| 16 | p | female | 88.0 | 4 |
| 12 | l | female | 88.0 | 4 |
| 8 | h | female | 88.0 | 4 |
| 2 | b | female | 87.0 | 5 |
| 9 | i | male | 75.0 | 6 |
| 10 | j | male | 72.0 | 7 |
| 3 | c | male | 68.0 | 8 |
| 4 | d | female | 54.0 | 9 |
| 7 | g | male | 50.0 | 10 |
| 6 | f | female | 46.0 | 11 |
| 14 | n | female | NULL | 12 |
| 15 | o | male | NULL | 12 |
+-----------+-------------+------------+-------------+-----+--+
SELECT *,
ROW_NUMBER() OVER(PARTITION BY sex ORDER BY id) rn
FROM score;
+-----------+-------------+------------+-------------+-----+--+
| score.id | score.name | score.sex | score.mark | rn |
+-----------+-------------+------------+-------------+-----+--+
| 2 | b | female | 87.0 | 1 |
| 4 | d | female | 54.0 | 2 |
| 6 | f | female | 46.0 | 3 |
| 8 | h | female | 88.0 | 4 |
| 11 | k | female | 100.0 | 5 |
| 12 | l | female | 88.0 | 6 |
| 14 | n | female | NULL | 7 |
| 16 | p | female | 88.0 | 8 |
| 1 | a | male | 99.0 | 1 |
| 3 | c | male | 68.0 | 2 |
| 5 | e | male | 93.0 | 3 |
| 7 | g | male | 50.0 | 4 |
| 9 | i | male | 75.0 | 5 |
| 10 | j | male | 72.0 | 6 |
| 13 | m | male | 99.0 | 7 |
| 15 | o | male | NULL | 8 |
+-----------+-------------+------------+-------------+-----+--+
SELECT *,
rank() OVER(PARTITION BY sex ORDER BY mark desc) rn
FROM score;
+-----------+-------------+------------+-------------+-----+--+
| score.id | score.name | score.sex | score.mark | rn |
+-----------+-------------+------------+-------------+-----+--+
| 11 | k | female | 100.0 | 1 |
| 16 | p | female | 88.0 | 2 |
| 12 | l | female | 88.0 | 2 |
| 8 | h | female | 88.0 | 2 |
| 2 | b | female | 87.0 | 5 |
| 4 | d | female | 54.0 | 6 |
| 6 | f | female | 46.0 | 7 |
| 14 | n | female | NULL | 8 |
| 1 | a | male | 99.0 | 1 |
| 13 | m | male | 99.0 | 1 |
| 5 | e | male | 93.0 | 3 |
| 9 | i | male | 75.0 | 4 |
| 10 | j | male | 72.0 | 5 |
| 3 | c | male | 68.0 | 6 |
| 7 | g | male | 50.0 | 7 |
| 15 | o | male | NULL | 8 |
+-----------+-------------+------------+-------------+-----+--+
SELECT *,
dense_rank() OVER(PARTITION BY sex ORDER BY mark desc) rn
FROM score;
+-----------+-------------+------------+-------------+-----+--+
| score.id | score.name | score.sex | score.mark | rn |
+-----------+-------------+------------+-------------+-----+--+
| 11 | k | female | 100.0 | 1 |
| 16 | p | female | 88.0 | 2 |
| 12 | l | female | 88.0 | 2 |
| 8 | h | female | 88.0 | 2 |
| 2 | b | female | 87.0 | 3 |
| 4 | d | female | 54.0 | 4 |
| 6 | f | female | 46.0 | 5 |
| 14 | n | female | NULL | 6 |
| 1 | a | male | 99.0 | 1 |
| 13 | m | male | 99.0 | 1 |
| 5 | e | male | 93.0 | 2 |
| 9 | i | male | 75.0 | 3 |
| 10 | j | male | 72.0 | 4 |
| 3 | c | male | 68.0 | 5 |
| 7 | g | male | 50.0 | 6 |
| 15 | o | male | NULL | 7 |
+-----------+-------------+------------+-------------+-----+--+
-- 总结:
ROW_NUMBER() 按行定序,[1,2,3]
RANK() 按值定序,[1,1,3]
DENSE_RANK() 按值定序,[1,1,2]
-- 用法:
ROW_NUMBER() OVER(PARTITION BY ),仅分区后排名,用得少
ROW_NUMBER() OVER(ORDER BY ),全窗口排序后排名,用得少
ROW_NUMBER() OVER(PARTITION BY ORDER BY ),先分组,再排序,最后排名
【注:以上用法适用于三种排名函数】
partition BY 定义窗口大小为分组大小,否则窗口大小为全表大小
-- 窗口聚合函数
SELECT *,
COUNT(*) OVER(PARTITION BY sex)
FROM score;
+-----------+-------------+------------+-------------+---------+--+
| score.id | score.name | score.sex | score.mark | _wcol0 |
+-----------+-------------+------------+-------------+---------+--+
| 16 | p | female | 88.0 | 8 |
| 14 | n | female | NULL | 8 |
| 12 | l | female | 88.0 | 8 |
| 11 | k | female | 100.0 | 8 |
| 8 | h | female | 88.0 | 8 |
| 6 | f | female | 46.0 | 8 |
| 4 | d | female | 54.0 | 8 |
| 2 | b | female | 87.0 | 8 |
| 1 | a | male | 99.0 | 8 |
| 15 | o | male | NULL | 8 |
| 7 | g | male | 50.0 | 8 |
| 13 | m | male | 99.0 | 8 |
| 3 | c | male | 68.0 | 8 |
| 5 | e | male | 93.0 | 8 |
| 10 | j | male | 72.0 | 8 |
| 9 | i | male | 75.0 | 8 |
+-----------+-------------+------------+-------------+---------+--+
SELECT *,
MAX(mark) OVER(PARTITION BY sex) max_mark,
MIN(mark) OVER(PARTITION BY sex) min_mark
FROM score
WHERE mark IS NOT null;
+-----------+-------------+------------+-------------+-----------+-----------+--+
| score.id | score.name | score.sex | score.mark | max_mark | min_mark |
+-----------+-------------+------------+-------------+-----------+-----------+--+
| 16 | p | female | 88.0 | 100.0 | 46.0 |
| 6 | f | female | 46.0 | 100.0 | 46.0 |
| 12 | l | female | 88.0 | 100.0 | 46.0 |
| 4 | d | female | 54.0 | 100.0 | 46.0 |
| 11 | k | female | 100.0 | 100.0 | 46.0 |
| 2 | b | female | 87.0 | 100.0 | 46.0 |
| 8 | h | female | 88.0 | 100.0 | 46.0 |
| 7 | g | male | 50.0 | 99.0 | 50.0 |
| 13 | m | male | 99.0 | 99.0 | 50.0 |
| 10 | j | male | 72.0 | 99.0 | 50.0 |
| 9 | i | male | 75.0 | 99.0 | 50.0 |
| 5 | e | male | 93.0 | 99.0 | 50.0 |
| 3 | c | male | 68.0 | 99.0 | 50.0 |
| 1 | a | male | 99.0 | 99.0 | 50.0 |
+-----------+-------------+------------+-------------+-----------+-----------+--+
SELECT *,
SUM(mark) OVER(PARTITION BY sex) sum_mark,
AVG(mark) OVER(PARTITION BY sex) avg_mark
FROM score;
+-----------+-------------+------------+-------------+-----------+--------------------+--+
| score.id | score.name | score.sex | score.mark | sum_mark | avg_mark |
+-----------+-------------+------------+-------------+-----------+--------------------+--+
| 16 | p | female | 88.0 | 551.0 | 78.71428571428571 |
| 14 | n | female | NULL | 551.0 | 78.71428571428571 |
| 12 | l | female | 88.0 | 551.0 | 78.71428571428571 |
| 11 | k | female | 100.0 | 551.0 | 78.71428571428571 |
| 8 | h | female | 88.0 | 551.0 | 78.71428571428571 |
| 6 | f | female | 46.0 | 551.0 | 78.71428571428571 |
| 4 | d | female | 54.0 | 551.0 | 78.71428571428571 |
| 2 | b | female | 87.0 | 551.0 | 78.71428571428571 |
| 1 | a | male | 99.0 | 556.0 | 79.42857142857143 |
| 15 | o | male | NULL | 556.0 | 79.42857142857143 |
| 7 | g | male | 50.0 | 556.0 | 79.42857142857143 |
| 13 | m | male | 99.0 | 556.0 | 79.42857142857143 |
| 3 | c | male | 68.0 | 556.0 | 79.42857142857143 |
| 5 | e | male | 93.0 | 556.0 | 79.42857142857143 |
| 10 | j | male | 72.0 | 556.0 | 79.42857142857143 |
| 9 | i | male | 75.0 | 556.0 | 79.42857142857143 |
+-----------+-------------+------------+-------------+-----------+--------------------+--+
SELECT *,
SUM(mark) OVER(ORDER BY mark) sum_mark
FROM score;
-- 窗口自上而下自动变化,遇到相同值时视为一组同时计算,窗口范围从表首行到表末行,计算范围从表首行到当前行
+-----------+-------------+------------+-------------+-----------+--+
| score.id | score.name | score.sex | score.mark | sum_mark |
+-----------+-------------+------------+-------------+-----------+--+
| 15 | o | male | NULL | NULL |
| 14 | n | female | NULL | NULL |
| 6 | f | female | 46.0 | 46.0 |
| 7 | g | male | 50.0 | 96.0 |
| 4 | d | female | 54.0 | 150.0 |
| 3 | c | male | 68.0 | 218.0 |
| 10 | j | male | 72.0 | 290.0 |
| 9 | i | male | 75.0 | 365.0 |
| 2 | b | female | 87.0 | 452.0 |
| 16 | p | female | 88.0 | 716.0 |
| 12 | l | female | 88.0 | 716.0 |
| 8 | h | female | 88.0 | 716.0 |
| 5 | e | male | 93.0 | 809.0 |
| 13 | m | male | 99.0 | 1007.0 |
| 1 | a | male | 99.0 | 1007.0 |
| 11 | k | female | 100.0 | 1107.0 |
+-----------+-------------+------------+-------------+-----------+--+
SELECT *,
SUM(mark) OVER(PARTITION BY sex ORDER BY mark) sum_mark
FROM score;
-- 如果分组则窗口边界是从组的第一行到组的最后一行
-- 如果不分组则窗口边界是从表的第一行到表的最后一行
+-----------+-------------+------------+-------------+-----------+--+
| score.id | score.name | score.sex | score.mark | sum_mark |
+-----------+-------------+------------+-------------+-----------+--+
| 14 | n | female | NULL | NULL |
| 6 | f | female | 46.0 | 46.0 |
| 4 | d | female | 54.0 | 100.0 |
| 2 | b | female | 87.0 | 187.0 |
| 16 | p | female | 88.0 | 451.0 |
| 12 | l | female | 88.0 | 451.0 |
| 8 | h | female | 88.0 | 451.0 |
| 11 | k | female | 100.0 | 551.0 |
| 15 | o | male | NULL | NULL |
| 7 | g | male | 50.0 | 50.0 |
| 3 | c | male | 68.0 | 118.0 |
| 10 | j | male | 72.0 | 190.0 |
| 9 | i | male | 75.0 | 265.0 |
| 5 | e | male | 93.0 | 358.0 |
| 1 | a | male | 99.0 | 556.0 |
| 13 | m | male | 99.0 | 556.0 |
+-----------+-------------+------------+-------------+-----------+--+
-- 窗口分析函数
SELECT *,
LEAD(mark,2,0) OVER(PARTITION BY sex ORDER BY mark) lead,
LAG(mark,2,0) OVER(PARTITION BY sex ORDER BY mark) lag
FROM score;
-- 说明:
-- 第一个参数指定要取哪个字段的值
-- 第二个参数指定向上或向下跳过几行(默认值是1)
-- 第三个参数指定当值为null时替代的默认值(默认值是null)
+-----------+-------------+------------+-------------+--------+-------+--+
| score.id | score.name | score.sex | score.mark | lead | lag |
+-----------+-------------+------------+-------------+--------+-------+--+
| 14 | n | female | NULL | 54.0 | 0.0 |
| 6 | f | female | 46.0 | 87.0 | 0.0 |
| 4 | d | female | 54.0 | 88.0 | NULL |
| 2 | b | female | 87.0 | 88.0 | 46.0 |
| 16 | p | female | 88.0 | 88.0 | 54.0 |
| 12 | l | female | 88.0 | 100.0 | 87.0 |
| 8 | h | female | 88.0 | 0.0 | 88.0 |
| 11 | k | female | 100.0 | 0.0 | 88.0 |
| 15 | o | male | NULL | 68.0 | 0.0 |
| 7 | g | male | 50.0 | 72.0 | 0.0 |
| 3 | c | male | 68.0 | 75.0 | NULL |
| 10 | j | male | 72.0 | 93.0 | 50.0 |
| 9 | i | male | 75.0 | 99.0 | 68.0 |
| 5 | e | male | 93.0 | 99.0 | 72.0 |
| 1 | a | male | 99.0 | 0.0 | 75.0 |
| 13 | m | male | 99.0 | 0.0 | 93.0 |
+-----------+-------------+------------+-------------+--------+-------+--+
SELECT *,
FIRST_VALUE(mark,true) OVER(partition BY sex ORDER BY mark desc) first,
LAST_VALUE(mark,true) OVER(partition BY sex ORDER BY mark desc) last
FROM score;
-- 说明
-- 第一个参数指定要取哪个字段的值
-- 第二个参数指定是否跳过null值(默认值是false)
+-----------+-------------+------------+-------------+--------+--------+--+
| score.id | score.name | score.sex | score.mark | first | last |
+-----------+-------------+------------+-------------+--------+--------+--+
| 11 | k | female | 100.0 | 100.0 | 100.0 |
| 16 | p | female | 88.0 | 100.0 | 88.0 |
| 12 | l | female | 88.0 | 100.0 | 88.0 |
| 8 | h | female | 88.0 | 100.0 | 88.0 |
| 2 | b | female | 87.0 | 100.0 | 87.0 |
| 4 | d | female | 54.0 | 100.0 | 54.0 |
| 6 | f | female | 46.0 | 100.0 | 46.0 |
| 14 | n | female | NULL | 100.0 | 46.0 |
| 1 | a | male | 99.0 | 99.0 | 99.0 |
| 13 | m | male | 99.0 | 99.0 | 99.0 |
| 5 | e | male | 93.0 | 99.0 | 93.0 |
| 9 | i | male | 75.0 | 99.0 | 75.0 |
| 10 | j | male | 72.0 | 99.0 | 72.0 |
| 3 | c | male | 68.0 | 99.0 | 68.0 |
| 7 | g | male | 50.0 | 99.0 | 50.0 |
| 15 | o | male | NULL | 99.0 | 50.0 |
+-----------+-------------+------------+-------------+--------+--------+--+
-- 思路:分组 -> 排序 -> 计算【排名,聚合,分析】
-- 排名 -> row_number(),rank(),dense_rank()
-- 聚合 -> count(),max(),min(),sum(),avg()
-- 分析 -> lead(),lag(),first_value(),last_value()
-- window子句分为两类:行,值范围,不支持使用的函数包括:row_number(),rank(),dense_rank(),lead(),lag()
SELECT *,
MAX(mark) OVER(ORDER BY mark rows BETWEEN unbounded preceding AND CURRENT row)
FROM score;
+-----------+-------------+------------+-------------+---------+--+
| score.id | score.name | score.sex | score.mark | _wcol0 |
+-----------+-------------+------------+-------------+---------+--+
| 15 | o | male | NULL | NULL |
| 14 | n | female | NULL | NULL |
| 6 | f | female | 46.0 | 46.0 |
| 7 | g | male | 50.0 | 50.0 |
| 4 | d | female | 54.0 | 54.0 |
| 3 | c | male | 68.0 | 68.0 |
| 10 | j | male | 72.0 | 72.0 |
| 9 | i | male | 75.0 | 75.0 |
| 2 | b | female | 87.0 | 87.0 |
| 16 | p | female | 88.0 | 88.0 |
| 12 | l | female | 88.0 | 88.0 |
| 8 | h | female | 88.0 | 88.0 |
| 5 | e | male | 93.0 | 93.0 |
| 13 | m | male | 99.0 | 99.0 |
| 1 | a | male | 99.0 | 99.0 |
| 11 | k | female | 100.0 | 100.0 |
+-----------+-------------+------------+-------------+---------+--+
SELECT *,
MAX(mark) OVER(ORDER BY mark rows BETWEEN unbounded preceding AND unbounded following)
FROM score;
+-----------+-------------+------------+-------------+---------+--+
| score.id | score.name | score.sex | score.mark | _wcol0 |
+-----------+-------------+------------+-------------+---------+--+
| 15 | o | male | NULL | 100.0 |
| 14 | n | female | NULL | 100.0 |
| 6 | f | female | 46.0 | 100.0 |
| 7 | g | male | 50.0 | 100.0 |
| 4 | d | female | 54.0 | 100.0 |
| 3 | c | male | 68.0 | 100.0 |
| 10 | j | male | 72.0 | 100.0 |
| 9 | i | male | 75.0 | 100.0 |
| 2 | b | female | 87.0 | 100.0 |
| 16 | p | female | 88.0 | 100.0 |
| 12 | l | female | 88.0 | 100.0 |
| 8 | h | female | 88.0 | 100.0 |
| 5 | e | male | 93.0 | 100.0 |
| 13 | m | male | 99.0 | 100.0 |
| 1 | a | male | 99.0 | 100.0 |
| 11 | k | female | 100.0 | 100.0 |
+-----------+-------------+------------+-------------+---------+--+
SELECT *,
MAX(mark) OVER(ORDER BY mark rows BETWEEN 2 following AND 6 following)
FROM score;
+-----------+-------------+------------+-------------+---------+--+
| score.id | score.name | score.sex | score.mark | _wcol0 |
+-----------+-------------+------------+-------------+---------+--+
| 15 | o | male | NULL | 72.0 |
| 14 | n | female | NULL | 75.0 |
| 6 | f | female | 46.0 | 87.0 |
| 7 | g | male | 50.0 | 88.0 |
| 4 | d | female | 54.0 | 88.0 |
| 3 | c | male | 68.0 | 88.0 |
| 10 | j | male | 72.0 | 93.0 |
| 9 | i | male | 75.0 | 99.0 |
| 2 | b | female | 87.0 | 99.0 |
| 16 | p | female | 88.0 | 100.0 |
| 12 | l | female | 88.0 | 100.0 |
| 8 | h | female | 88.0 | 100.0 |
| 5 | e | male | 93.0 | 100.0 |
| 13 | m | male | 99.0 | 100.0 |
| 1 | a | male | 99.0 | NULL |
| 11 | k | female | 100.0 | NULL |
+-----------+-------------+------------+-------------+---------+--+
SELECT *,
MAX(mark) OVER(ORDER BY mark range BETWEEN 20 preceding AND 20 following)
FROM score;
+-----------+-------------+------------+-------------+---------+--+
| score.id | score.name | score.sex | score.mark | _wcol0 |
+-----------+-------------+------------+-------------+---------+--+
| 15 | o | male | NULL | NULL |
| 14 | n | female | NULL | NULL |
| 6 | f | female | 46.0 | 54.0 |
| 7 | g | male | 50.0 | 68.0 |
| 4 | d | female | 54.0 | 72.0 |
| 3 | c | male | 68.0 | 88.0 |
| 10 | j | male | 72.0 | 88.0 |
| 9 | i | male | 75.0 | 93.0 |
| 2 | b | female | 87.0 | 100.0 |
| 16 | p | female | 88.0 | 100.0 |
| 12 | l | female | 88.0 | 100.0 |
| 8 | h | female | 88.0 | 100.0 |
| 5 | e | male | 93.0 | 100.0 |
| 13 | m | male | 99.0 | 100.0 |
| 1 | a | male | 99.0 | 100.0 |
| 11 | k | female | 100.0 | 100.0 |
+-----------+-------------+------------+-------------+---------+--+
-- 取成绩前3名
WITH t1 AS(
SELECT *,
DENSE_RANK() OVER(ORDER BY mark desc) dk
FROM score
)
SELECT *
FROM t1
WHERE dk <=3;
SELECT *
FROM (
SELECT *,
DENSE_RANK() OVER(ORDER BY mark desc) dk
FROM score
)t1
WHERE dk <=3;
相关文章:
hive高级查询(2)
-- 分组查询 SELECT sex,SUM(mark) sum_mark FROM score GROUP BY sex HAVING sum_mark > 555; SELECT sex,sum_mark FROM( SELECT sex,SUM(mark) sum_mark FROM score GROUP BY sex ) t WHERE sum_mark > 555; SELECT AVG(gid),SUM(gid)/COUNT(gid) FROM …...
golang的jwt学习笔记
文章目录 初始化项目加密一步一步编写程序另一个参数--加密方式关于StandardClaims 解密解析出来的怎么用关于`MapClaims`上面使用结构体的全代码实战项目关于验证这个项目的前端初始化项目 自然第一步是暗转jwt-go的依赖啦 #go get github.com/golang-jwt/jwt/v5 go get githu…...
第十五节TypeScript 接口
1、简介 接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都应该是抽象的,需要有由具体的类去实现,然后第三方就可以通过这组抽象方法调用,让具体的类执行具体的方法。 2、接口的定义 interface interface_…...
【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口?!
【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口?!😎 前言🙌【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口?!查看自己的配置文件:最终成功访问如图所示: 总结撒花…...
14.bash shell中的for/while/until循环
文章目录 shell循环语句for命令**读取列表中的值****读取列表中的复杂值****从变量读取列表**迭代数组**从命令读取值****用通配符读取目录**C语言风格的shell for循环 shell循环while命令shell 循环的until命令shell循环跳出的break/continue命令break命令continue命令trick 欢…...
RPC(6):RMI实现RPC
1RMI简介 RMI(Remote Method Invocation) 远程方法调用。 RMI是从JDK1.2推出的功能,它可以实现在一个Java应用中可以像调用本地方法一样调用另一个服务器中Java应用(JVM)中的内容。 RMI 是Java语言的远程调用,无法实现跨语言。…...
strlen和sizeof的初步理解
大家好我是Beilef,一个美好的下我接触到编程并且逐渐喜欢。我虽然不是科班出身但是我会更加努力地去学,有啥不对的地方请斧正 文章目录 目录 文章目录 前言 想必大家对sizeof肯定很了解,那对strlen又了解多少。其实这个问题应该让不少人困扰。…...
纯CSS的华为充电动画,它来了
📢 鸿蒙专栏:想学鸿蒙的,冲 📢 C语言专栏:想学C语言的,冲 📢 VUE专栏:想学VUE的,冲这里 📢 Krpano专栏:想学Krpano的,冲 🔔…...
在架构设计中,前后端分离有什么好处?
前后端分离是一种架构设计模式,将前端和后端的开发分别独立进行,它带来了多方面的好处: 1、独立开发和维护: 前后端分离允许前端和后端开发团队独立进行工作。这意味着两个团队可以并行开发,提高了整体的开发效率。前…...
C语言中的结构体和联合体:异同及应用
文章目录 C语言中的结构体和联合体:异同及应用1. 结构体(Struct)的概述代码示例: 2. 联合体(Union)的概述代码示例: 3. 结构体与联合体的异同点相同点:不同点:代码说明 结…...
文件夹共享(普通共享和高级共享的区别)防火墙设置(包括了jdk安装和Tomcat)
文章目录 一、共享文件1.1为什么需要配置文件夹共享功能?1.2配置文件共享功能1.3高级共享和普通共享的区别: 二、防火墙设置2.1先要在虚拟机上安装JDK和Tomcat供外部访问。2.2设置防火墙: 一、共享文件 1.1为什么需要配置文件夹共享功能&…...
❀My排序算法学习之冒泡排序❀
目录 冒泡排序(Bubble Sort):) 一、定义 二、算法原理 三、算法分析 时间复杂度 算法稳定性 算法描述 C语言 C++ 算法比较 插入排序 选择排序 快速排序 归并排序 冒泡排序(Bubble Sort):) 一、定义 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单…...
服务器数据恢复-raid6离线磁盘强制上线后分区打不开的数据恢复案例
服务器数据恢复环境: 服务器上有一组由12块硬盘组建的raid6磁盘阵列,raid6阵列上层有一个lun,映射到WINDOWS系统上使用,WINDOWS系统划分了一个GPT分区。 服务器故障&分析: 服务器在运行过程中突然无法访问。对服务…...
Zookeeper在分布式命名服务中的实践
Java学习面试指南:https://javaxiaobear.cn 命名服务是为系统中的资源提供标识能力。ZooKeeper的命名服务主要是利用ZooKeeper节点的树形分层结构和子节点的顺序维护能力,来为分布式系统中的资源命名。 哪些应用场景需要用到分布式命名服务呢࿱…...
说说 Spring Boot 实现接口幂等性有哪几种方案?
一、什么是幂等性 幂等是一个数学与计算机学概念,在数学中某一元运算为幂等时,其作用在任一元素两次后会和其作用一次的结果相同。 在计算机中编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数或幂等…...
Dash中的callback的使用 多input 6
代码说明 import plotly.express as pxmport plotly.express as px用于导入plotly.express模块并给它起一个别名px。这样在后续的代码中,你可以使用px来代替plotly.express,使代码更加简洁。 plotly.express是Plotly的一个子模块,用于快速创…...
平方矩阵()
平方矩阵1 平方矩阵2 曼哈顿距离 #include<iostream> #include<algorithm> #include<cstdio> #include<cstring>using namespace std;const int N 110;int n; int a[N][N];int main() {while(cin >> n, n){for (int i 0; i < n; i )fo…...
git基本命令
1、安装 介绍 安装 配置 2、git基本命令 2.1 基本操作 #1、查看空目录的git状态 $ git status fatal: not a git repository (or any of the parent directories): .git#2、初始化本地仓库:创建一个git的目录管理当前项目的所有文件版本 $ git init Initializ…...
GPU性能实时监测的实用工具
大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...
概率论中的 50 个具有挑战性的问题 [第 6 部分]:Chuck-a-Luck
一、说明 我最近对与概率有关的问题产生了兴趣。我偶然读到了弗雷德里克莫斯特勒(Frederick Mosteller)的《概率论中的五十个具有挑战性的问题与解决方案》)一书。我认为创建一个系列来讨论这些可能作为面试问题出现的迷人问题会很有趣。每篇…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
