强制从hiveString到array_hive的类型转换
2023年04月28日 12:11
欧易okx交易所下载
欧易交易所又称欧易OKX,是世界领先的数字资产交易所,主要面向全球用户提供比特币、莱特币、以太币等数字资产的现货和衍生品交易服务,通过使用区块链技术为全球交易者提供高级金融服务。
今天给大家分享hiveString转数组的知识,也会讲解hive的强制类型转换。如果你碰巧解决了你现在面临的问题,不要';别忘了关注这个网站。如果你有不同的看法和意见,请积极在评论区留言。现在让';咱们言归正传吧!
可以自己实现一个udf,实现json字符串转换成map和数组或者struct类型
。或使用get_json_object获取json字符串
中相应键的值
hive字符串函数
1。字符串长度函数:length
语法:length(字符串A)
返回值:int
描述:返回字符串A的长度
示例:
Selectionlengthofconfigurationunitinlxw_dual('abcefg');
7
2。Stringinversionfunction:inversion
语法:reverse(stringA)
返回值:string
描述:返回stringA的反演结果
示例:
。配置单元反向选择(abcefg')来自lxw_dual
gfdecba
3.字符串连接函数:串联
语法:concat(stringa,stringb…)
返回值:string
描述:返回输入字符串串联的结果,支持任意输入字符串
示例:
。配置单元选择连接(';abc','def','GH')来自lxw_dual
abcdefgh
4.带分隔符字符串连接函数:concat_ws
语法:concat_ws(Stringsep,StringA,StringB…)
返回值:string
描述:返回输入字符串串联的结果。,Septemberrepresentstheseparator
betweenstrings.Forexample,
HiveSelectConcat_ws('''abc''def''GH')fromlxw_dual;
abc,def,gh5.字符串截取函数:substr,substring
syntax:substr(stringa,intstart),substring(stringa,intstart)
returnvalue:string
描述:返回字符串a从开始位置到结束位置的字符串
示例:
Hiveselectsubstr(';abcde',3)来自lxw_dual
cde
配置单元选择子字符串(';abcde',3)来自lxw_dual
cde
lxw_dual中的hiveselectsubstr(';abcde',-1);(和神谕相同)
e
6。字符串拦截函数:substr,substring
语法:substr(字符串a,intstart,intlen),子串(字符串a,intstart,intlen)
返回值:字符串
描述:返回从起始位置开始,长度为len
的字符串A示例:
Hiveselectsubstr(';abcde',3,2)来自lxw_dual
CD
配置单元选择子串('abcde',3,2)来自lxw_dual
cd
艾滋病毒选择子串('abcde',-2,2)来自lxw_dual
de
7.字符串转大写函数:上部,ucase
语法:upper(stringa)ucase(stringa)
返回值:string
描述:返回字符串a的大写格式
示例:
。selecttheupperconfigurationunit('abSEd');
ABSED
selectucase('abSEd');
8。Stringtolowercasefunction:lowerpart,lcase
语法:lower(stringa)lcase(stringa)
返回值:string
描述:返回字符串a的小写格式
示例:
。selectthelowerconfigurationunit('abSEd');
absed
chooselcase('abSEd');
9。Blankingfunction:trimming
语法:trim(stringA)
返回值:string
描述:去掉一个字符串两边的空格
示例:
。selecttrim('ABC');abc
10。Leftblankfunction:ltrim
语法:ltrim(stringA)
返回值:string
描述:去掉string
左边的空格示例:
。配置单元选择ltrim(';ABC')来自lxw_dualabc
11右边去空格函数:rtrim
语法:rtrim(stringA)
返回值:string
描述:去掉字符串右边的空格
。例:
。配置单元选择rtrim(';ABC')来自lxw_dualabc
12正则表达式替换函数:regexp_replace
syntax:regexp_replace(stringa,stringb,stringC)
returnvalue:string
描述:将字符串a中符合java正则表达式b的部分替换为c,注意某些情况下会使用转义字符,类似于oracle中的regexp_replace函数。
示例:
配置单元选择regexp_replace(';foobar','oo|ar',")fromlxw_dual
FB
Thirteen.Regularexpressionparsingfunction:regexp_extractSyntax:regexp_extract(stringtheme,stringpattern,intindex)
返回值:string
描述:按照模式正则表达式的规则拆分字符串subject,返回index指定的字符。
示例:
配置单元选择regexp_extract(';foothebar','foo(.*?)(吧)';1)来自lxw_dual
配置单元选择regexp_extract(';foothebar','foo(.*?)(吧)';2)来自lxw_dual
条
配置单元选择regexp_extract(';foothebar','foo(.*?)(吧)';0)来自lxw_dual
山脚
注意,在某些情况下要使用转义字符,等号后面要用双竖线转义,这是java正则表达式的规则。
选择数据字段,
regexp_extract(data_field,';*?bgstart\=([^])';1)为aaa,
regexp_extract(data_field,';*?contentloaded_headstart\=([^])';1)作为bbb,
regexp_extract(data_field,';*?appload2req\=([^])';1)为ccc
来自log_ST中的pt_nginx_log
其中pt=-03-26'极限2;
14。统一资源定位器解析函数:parse_url语法:parse_url(stringurlString,stringpartToExtract[,要提取的字符串键])
返回值:字符串
Description:ThevalidvaluesforreturningpartofpartToExtractspecifiedintheUniformResourceLocatorare:host,path,query,reference,protocol,authorization,fileanduserinformation.
Example:
配置单元selectparse_URL(';k2=v2#Ref1','主持人';)来自lxw_dual脸书。com
配置单元selectparse_URL(';k2=v2#Ref1','查询';'k1')来自lxw_dual
v1
第十五课.json解析函数:get_json_object语法:get_JSON_object(stringJSON_string,stringpath)
返回值:string
描述:解析json的字符串json_string,返回path指定的内容。如果输入的json字符串无效,则返回NULL。
示例:
配置单元选择get_JSON_object(';{"商店":
{";水果"[{";重量"8,"类型""苹果"},{"重量"9,"类型""梨"}],
";自行车"{"价格""颜色""红色"}
},
";电子邮件":"艾米@only_for_JSON_UDF_test。net",
";所有者":"艾米"
}
''$。Fromlxw_dualAmy,Amy,Amy.Spacestringfunction:space
syntax:space(intn)
Returnvalue:string
Description:Returnsastringwithlengthn
Example:
hiveselectspace(10)fromlxw_dual;
Selectthelength(space(10))fromlxw_dual;
10
17。Repeatstringfunction:repeat
语法:repeat(stringstr,intn)
返回值:string
描述:返回重复n次的str字符串
。例:
。duplicateconfigurationunitselectionfromlxw_dual('abc'5);
ABCABCABCABCABC
18。Firstcharacteramericanstandardcodeforinformationinterchangecodefunction:ascii
语法:ascii(stringstr)
返回值:int
备注:返回字符串str
第一个字符的ascii码示例:
。配置单元选择ascii(';abcde')来自lxw_dual
97
19.左补足函数:lpad
syntax:lpad(stringstr,intlen,stringpad)
returnvalue:string
description:submarinethermalneutronreactor(abbreviationofsubmarinethermalreactor)isusedforleftcomplementtolow-entrynetworking(abbreviationoflow-entrynetworking).
举例:
配置单元选择lpad(';ABC',10,'TD')来自lxw_dual
tdtdtdtabc
注意:与甲骨文GP不同,padcannotdefaultto
20.Rightcomplementfunction:rpad
syntax:rpad(stringstr,intlen,stringpad)
returnvalue:string
.Description:thethermalneutronreactorforsubmarine(abbreviationofsubmarinethermalreactor)issupplementedtothepositionoflow-inputnetworking(abbreviationoflow-entrynetworking)
Examples:
HiveSelectRPAD('ABC'10,'TD')fromlxw_dual;
abctdtdtdt
21.分割字符串函数:分割
语法:split(stringstr,stringpat)
返回值:数组
描述:根据pat字符串划分str将返回划分后的字符串数组
示例:
hiveselectsplit(';abtcdtef','t')来自lxw_dual
[";ab","cd","ef"
22.集合查找函数:在集合中查找
Syntax:find_in_set(stringstr,stringstrList)
Returnvalue:int
Description:Returntothepositionwheresubmarinethermalneutronreactor(abbreviationforsubmarinethermalreactor)firstappearedinstrlist.,strlist是逗号分隔的字符串。如果找不到str字符,则返回0
。示例:
hiveselectfind_in_set(';ab','ef,ab,de')来自lxw_dual
2
hiveselectfind_in_set(';在';'ef,ab,de')来自lxw_dual
创建虚表:
语法:长度(字符串答
返回值:int
描述:返回字符串A的长度
语法:reverse(stringA)
返回值:string
。描述:返回字符串A的反演结果
语法:concat(stringa,stringb…)
返回值:string
描述:返回输入字符串的拼接结果。,supportsanyinputstring
Syntax:concat_ws(stringSEP,stringa,stringB…)
Returnvalue:string
.描述:返回输入字符串串联的结果,SEP代表每个字符串之间的分隔符
。syntax:substr(stringa,intstart),substring(stringa,intstart)
returnvalue:string
描述:返回从开始位置到结束位置的字符串A
语法:substr(stringA,intstart,intlen),substring(stringA,intstart,intlen)
返回值:string
描述:从起始位置开始返回长度为len的字符串A
语法:upper(stringA)ucase(stringA)
。返回值:string
描述:返回字符串A的大写格式
语法:lower(stringa)lcase(stringa)
返回值:string。
描述:返回字符串A的小写格式
语法:trim(stringA)
返回值:string
描述:删除字符串
两边的空格。语法:ltrim(stringA)
返回值:string
描述:去掉string
左边的空格语法:rtrim(stringA)
。returnvalue:string
Description:removethespaceontherightsideofthestring
Syntax:regexp_replace(stringA,stringB,stringC)
.返回值:string
备注:将字符串a中符合java正则表达式b的部分替换为c,注意在某些情况下会使用转义符,类似于oracle中的regexp_replace函数。
Syntax:regexp_extract(stringtheme,stringpattern,integerindex)
Returnvalue:string
描述:按照模式正则表达式的规则拆分字符串subject,返回index指定的字符。
第三个参数:
0是显示整个匹配的字符串
。1显示
2显示第二个括号中的域
。语法:parse_url(stringurlString,stringpartToExtract[,要提取的字符串键])
返回值:字符串
Description:ThevalidvaluesforreturningpartofpartToExtractspecifiedintheUniformResourceLocatorare:host,path,query,reference,protocol,authorization,fileanduserinformation.
语法:get_JSON_object(stringJSON_string,stringpath)
返回值:字符串
描述:解析json的字符串json_string,返回path指定的内容。如果输入的json字符串无效,则返回NULL。
语法:space(intn)
返回值:string
描述:返回长度为n的空字符串
语法:repeat(stringstr,intn)
返回值:string
。描述:返回重复n次的str字符串
。语法:ascii(stringstr)
返回值:int
描述:返回字符串str的第一个字符的ascii码。
Syntax:lpad(stringstr,intlen,stringpad)
Returnvalue:String
Description:Thesubmarinethermalneutronreactor(abbreviationforsubmarinethermalreactor)isconnectedtothelowinputnetworkwithpadding.
Syntax:rpad(stringstr,intlen,stringpad)
Returnvalue:String
Description:Thesubmarinethermalneutronreactor(shortforsubmarinethermalreactor)isconnectedtothelowinputnetworkwithagasket.
语法:split(stringstr,stringpat)
返回值:array
说明:如果一个str按照一个pat字符串分割,将返回分割后的字符串数组。
Syntax:find_in_set(stringstr,stringstrList)
Returnvalue:int
Description:Returntothepositionwheresubmarinethermalneutronreactor(abbreviationforsubmarinethermalreactor)firstappearedinstrlist.,strlist是逗号分隔的字符串。如果没有找到str字符,则返回0
并返回:int。substr在str中第一次出现的位置,如果任何参数为null,则返回null。,如果substr在str中不返回0,则str中第一个字符的位置为1
描述:C1是被搜索的字符串
C2要搜索字符串
i.搜索的起始位置默认为1
J出现的位置默认为1
24。使用两个分隔符将文本拆分成键值对:str_to_map(text[,delimiter1,delimiter2])
Return:map。
分隔符1将文本分成K-V对,分隔符2将每个K-V对分开。默认分隔符是';'对于定界符1和';='
用于定界符2。25。unix_timestamp()返回当前时间戳。另外,current_timestamp()也有同样的效果。unix_timestamp(stringdate)returnsthetimestampcorrespondingtothedate,andthedateformatmustbeyear-month-dayhour:minute:second.
unix_timestamp(stringdate,stringformat)returnsthetimestampcorrespondingtothedate,andthedateformatisspecifiedbytheformat
.26.from_unixtime(int/biginttimestamp)returnsthedatecorrespondingtothetimestampintheformatofyear-month-day-hour:minute:second.
from_unixtime(int/biginttimestamp,stringformat)returnsthedatecorrespondingtothetimestamp,andtheformatisspecifiedbytheformat
.函数描述:
NVL:为空值数据赋值,
其格式为
NVL(string1,replace_with)。
它的作用是,如果string1为NULL,NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL,则返回NULL。
date_format:格式time
date_add:将时间加到天数上
date_sub:将时间从天数上减去,类似于加法,用一个就ok
。selectdate_sub('2019-06-29'5);
Datedifference:twotimesaresubtracted
选择datediff(';2019-06-29''2019-06-24');
concat(stringa/col,stringb/col…):返回输入字符串串联的结果,支持任意输入字符串;
CONCAT_ws(separator,str1,str2,…):它是CONCAT()的一种特殊形式。第一个参数的其余参数之间的分隔符。分隔符
可以是与其余参数相同的字符串。。如果分隔符为空,返回值也将为空。
该函数跳过delimiter参数后的任何NULL和空字符串。将在连接的字符串之间添加分隔符;
selectconcat_ws('-'str1,str2)fromXX;//stristhecolumnnameoflinetype
Collectionset(column):thefunctiononlyacceptsbasicdatatypes.,它的主要作用是对一个字段的值进行反汇总,
生成一个数组类型的字段。
练习:将星座和血型相同的人分组在一起
变身第一步:
白羊座,A孙悟空
射手座,A大海
白羊座,B宋松
白羊座,A猪八戒
射手座,A西凤。
Merge
EXPLODE(col):将hive列中的复杂数组或映射结构拆分成多行。
侧视图//剖面图
用法:侧视图udtf(表达式)tableAliasAScolumnAlias
说明:与split、explode等UDTF一起使用,可以将一列数据拆分成多行,然后将拆分后的数据进行汇总。
练习:展开电影分类中的数组数据。
Selectexplodefrommovie_info;
OVER():specifiesthedatawindowsizeinwhichtheanalysisfunctionworks.,这个数据窗口的大小可以随着行的变化而变化;
/over(内部使用)/
当前行:当前行;
Beforen:Nrowsofdataforward;
nisasfollows:thenextnrowsofdata;
Boundless:startingpoint,
UNBOUNDEDPRECEDING表示从前面开始,UNBOUNDEDFOLLOWING表示从后面结束;
/*用于over*/
之外LAG(col,n):向前第n行的数据;
LEAD(col,n):下一个第n行数据;
NTILE(n):将有序分区中的行分配给指定的数据组。,每个组都有一个编号,从1开始,每行
,NTILE返回该行所属的组的编号。注意:n的类型必须是int。
数据:
1。查询2017年4月购买的客户及总人数
分组为一组,一个值,over为每条数据单独打开一个窗口
查询客户';的购买明细和购买总额。
按日期累计成本
排序
然后累计
查询客户';上次购买时间
下次购买时间
。查询前20%的订单信息
RANK()相同顺序时,会重复,总数不变,可以并列
DENSE_RANK()会重复,总数减少
。ROW_NUMBER()会计算
练习:计算各科成绩
计算各科成绩
。有一个表user_cook_recommended,是用sqoop从MySQL导入到hive的。表中的一个字段是数组的形式,导入到Hive中成为String类型。,比如4321,4532,337(字符串),现在我们需要得到这个数组的长度
。因为数组传入hive变成了字符串,我们需要先用split方法把它分解成数组。然后使用size()函数处理
。我相信在边肖';的对hiveString到数组和hive强制类型转换的介绍,您对hiveString到数组有了更透彻的理解。感谢大家的支持和关注!
推荐阅读
-
虚拟币平台诈骗案例 虚拟币平台诈骗案例分析
1970-01-01
abc,def,gh5.字符串截取函数:substr,substringsyntax:substr(stringa,in...
-
虚拟币钱包如何转到平台,虚拟币钱包如何转到平台里
1970-01-01
abc,def,gh5.字符串截取函数:substr,substringsyntax:substr(stringa,in...
-
虚拟货币的用途?比特币有哪些用处?
1970-01-01
abc,def,gh5.字符串截取函数:substr,substringsyntax:substr(stringa,in...
-
虚拟币彩票app平台?虚拟币彩票app平台下载
1970-01-01
abc,def,gh5.字符串截取函数:substr,substringsyntax:substr(stringa,in...
-
香港虚拟货币犯罪案例(香港数字货币交易所如何下载)
1970-01-01
abc,def,gh5.字符串截取函数:substr,substringsyntax:substr(stringa,in...
-
虚拟币跑路的平台 虚拟币跑路的平台有哪些
1970-01-01
abc,def,gh5.字符串截取函数:substr,substringsyntax:substr(stringa,in...