先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注大数据)
正文
hive> select map_keys(str_to_map('a:1,b:2'));
OK
["a","b"]
Time taken: 0.034 seconds, Fetched: 1 row(s)
array_contains:判断键是否存在
hive> select array_contains(map_keys(str_to_map('a:1,b:2')),'a');
sort_array:数组排序
hive> select sort_array(split('45,23,78,43,12',','));
5、转换函数
cast:转换数据类型
hive> select cast('2018-06-28' as date);
+----------------------------+
| cast('2018-06-28' as date) |
+----------------------------+
| 2018-06-28 |
+----------------------------+
1 row in set (0.00 sec)
6、日期函数
- to_date:从一个字符串中取出为日期的部分
- year、month、day:从一个日期中取出相应的年、月、日
hive> select year(from_unixtime(unix_timestamp(),'yyyy-MM-dd'));
- weekofyear:返回输入日期在该年中是第几个星期
- datediff:两个日期相减,返回相差天数
- date_add:在一个日期基础上增加天数
- date_sub:在一个日期基础上减去天数
7、条件函数
if:如果testCondition为 true 就返回 valueTrue,否则返回 valueFalseOrNull
hive> select if
> (1>2,'hehe','xixi');
OK
xixi
Time taken: 0.061 seconds, Fetched: 1 row(s)
nvl: value为null 返回default_value 否则返回value
hive> select nvl(null,1);
OK
1
Time taken: 0.036 seconds, Fetched: 1 row(s)
hive> select nvl(1,3);
OK
1
Time taken: 0.039 seconds, Fetched: 1 row(s)
hive> select nvl(null,null);
OK
NULL
Time taken: 0.034 seconds, Fetched: 1 row(s)
coalesce:从左到右返回第一个不为null的值
hive> select coalesce(null,null,null);
OK
NULL
Time taken: 0.042 seconds, Fetched: 1 row(s)
hive> select coalesce(null,null,null,123,34,456);
OK
123
Time taken: 0.041 seconds, Fetched: 1 row(s)
case…when…:条件表达式
hive> select name,orderdate,cost,case cost when 29 then 'hehe' else 'xixi' end from order;
语法格式:case A when B then C [when D then E]* [else F] end
解释:对于A来说,如果判断为B则返回C,如果判断为D则返回E(此处判断条件可为多个),如果以上都不是则返回F。注意,最后还有还有一个end结束符。
png)
运行结果:
8、聚合函数
count:返回行数
sum:组内某列求和
min:组内某列最小值
max:组内某列最大值
avg:组内某列平均值
以工资sal为例:
select count(\*),sum(sal),max(sal),min(sal),avg(sal) from emp;
9、表生成函数
explode:把map集合中每个键值对或数组中的每个元素都单独生成一行的形式
二、Hive 全部函数集合
函数名 | 含义及实例 |
ABS | abs(x) - 返回x的绝对值 示例: > SELECT abs(0)FROM src LIMIT 1; 0 > SELECT abs(-5)FROM src LIMIT 1; 五 |
ACOS | acos(x) - 如果-1 <= x <= 1则返回x的反余弦值,否则返回NULL 例如: > SELECT acos(1)FROM src LIMIT 1; 0 > SELECT acos(2)FROM src LIMIT 1; |
ADD_MONTHS | add_months(start_date,num_months) - 返回start_date之后的num_months日期。 start_date是格式为’yyyy-MM-dd HH:mm:ss’或’yyyy-MM-dd’的字符串。num_months是一个数字。start_date的时间部分被忽略。 示例: > SELECT add_months(‘2009-08-31’,1)FROM src LIMIT 1; ‘2009-09-30’ |
AES_DECRYPT | aes_decrypt(输入二进制,密钥字符串/二进制) - 使用AES解密输入。 AES(高级加密标准)算法。可以使用128,192或256位的密钥长度。如果安装了Java Cryptography Extension(JCE)Unlimited Strength Jurisdiction Policy Files,则可以使用192和256位密钥。如果任一参数为NULL或密钥长度不是允许值之一,则返回值为NULL。 示例:> SELECT aes_decrypt(unbase64(‘y6Ss + zCYObpCbgfWfyNWTw ==’),‘1234567890123456’); ‘ABC’ |
AES_ENCRYPT | aes_encrypt(输入字符串/二进制,密钥字符串/二进制) - 使用AES加密输入。 AES(高级加密标准)算法。可以使用128,192或256位的密钥长度。如果安装了Java Cryptography Extension(JCE)Unlimited Strength Jurisdiction Policy Files,则可以使用192和256位密钥。如果任一参数为NULL或密钥长度不是允许值之一,则返回值为NULL。 示例:> SELECT base64(aes_encrypt(‘ABC’,‘1234567890123456’)); ‘y6Ss + zCYObpCbgfWfyNWTw ==’ |
and | a1和a2和…以及 - 逻辑和 |
array | array(n0,n1 …) - 使用给定元素创建数组 |
array_contains | array_contains(array,value) - 如果数组包含值,则返回TRUE。 示例: > SELECT array_contains(array(1,2,3),2)FROM src LIMIT 1; 真正 |
ASCII | ascii(str) - 返回str的第一个字符的数值 如果str为空则返回0;如果str为NULL,则返回NULL 示例: > SELECT ascii(‘222’)FROM src LIMIT 1; 50 > SELECT ascii(2)FROM src LIMIT 1; 50 |
asin | asin(x) - 如果-1 <= x <= 1则返回x的反正弦,否则返回NULL 例如: > SELECT asin(0)FROM src LIMIT 1; 0 > SELECT asin(2)FROM src LIMIT 1; 空值 |
ASSERT_TRUE | assert_true(condition) - 如果’condition’不为真,则抛出异常。 示例: > SELECT assert_true(x> = 0)FROM src LIMIT 1; 空值 |
atan | atan(x) - 返回x的atan(arctan)(x是弧度) 示例: > SELECT atan(0)FROM src LIMIT 1; 0 |
avg | avg(x) - 返回一组数字的平均值 |
BASE64 | base64(bin) - 将参数从二进制转换为base 64字符串 |
between | 在[NOT] BETWEEN b和c之间 - 评估a是否在b和c之间 |
bin | bin(n) - 返回二进制 n中的n是BIGINT。如果n为NULL,则返回NULL。 示例: > SELECT bin(13)FROM src LIMIT 1’1101’ |
bloom_filter | 函数’bloom_filter’没有文档 |
bround | bround(x [,d]) - 使用HALF_EVEN舍入模式将x舍入到d小数位。 银行家的四舍五入。该值四舍五入到最接近的偶数。也称为高斯舍入。 示例: > SELECT bround(12.25,1); 12.2 |
cardinality_violation | cardinality_violation(n0,n1 …) - 引发基数违规 |
case | CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END - When a = b, returns c; when a = d, return e; else return f Example: SELECT CASE deptno WHEN 1 THEN Engineering WHEN 2 THEN Finance ELSE admin END, CASE zone WHEN 7 THEN Americas ELSE Asia-Pac END FROM emp_details |
CBRT | cbrt(double) - 返回double值的立方根。 示例: > SELECT cbrt(27.0); 3.0 |
ceil | ceil(x) - 求小于x的最小整数 同义词:ceiling 示例: > SELECT ceil(-0.1)FROM src LIMIT 1; 0 > SELECT ceil(5)FROM src LIMIT 1; 五 |
ceiling | ceiling(x) - 找到不小于x的最小整数 同义词:ceil 例: > SELECT ceiling(-0.1)FROM src LIMIT 1; 0 > SELECT ceiling(5)FROM src LIMIT 1; 五 |
CHAR_LENGTH | char_length(str |
CHARACTER_LENGTH | character_length(str |
CHR | chr(str) - 将n中的n:[0,256]转换为ascii等价物作为varchar。如果n小于0则返回空字符串。如果n> 256,则返回chr(n%256)。 示例: > SELECT chr(‘48’)FROM src LIMIT 1; ‘0’ > SELECT chr(‘65’)FROM src LIMIT 1; ‘一个’ |
coalesce | coalesce(a1,a2,…) - 返回第一个非空参数 示例: > SELECT coalesce(NULL,1,NULL)FROM src LIMIT 1; 1 |
collect_list | collect_list(x) - 返回具有重复项的对象列表 |
collect_set | collect_set(x) - 返回一组消除了重复元素的对象 |
compute_stats | compute_stats(x) - 返回一组基本类型值的统计摘要。 |
CONCAT | concat(str1,str2,… strN) - 返回str1,str2,… strN或concat(bin1,bin2,… binN)的串联 - 返回二进制数据bin1,bin2,…中的字节串联。 … binN 如果任何参数为NULL,则返回NULL。 示例: > SELECT concat(‘abc’,‘def’)FROM src LIMIT 1; ‘ABCDEF’ |
CONCAT_WS | concat_ws(separator,[string |
context_ngrams | context_ngrams(expr,array <string1,string2,…>,k,pf)估计适合指定上下文的top-k最频繁的n-gram。第二个参数指定一个字符串,用于指定n-gram元素的位置,其中空值表示必须由n-gram元素填充的“空白”。 主表达式必须是字符串数组或字符串数组数组,例如句子()UDF的返回类型。第二个参数指定上下文 - 例如,数组(“i”,“love”,null) - 它将估计主表达式中“i love”短语后面的顶部“k”字。可选的第四个参数’pf’控制启发式使用的内存。值越大,精度越高,但要使用更多内存。用法示例: SELECT context_ngrams(句子(lower(review)),array(“i”,“love”,null,null),10)FROM电影 会尝试确定“我爱”之后的10个最常见的双字短语自由形式自然语言电影评论数据 |