位置:芙蓉财经网 >> 比特币

强制从hiveString到array_hive的类型转换

2023年04月28日 12:11

欧易okx交易所下载

欧易交易所又称欧易OKX,是世界领先的数字资产交易所,主要面向全球用户提供比特币、莱特币、以太币等数字资产的现货和衍生品交易服务,通过使用区块链技术为全球交易者提供高级金融服务。

APP下载   官网注册

今天给大家分享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,gh

5.字符串截取函数: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_extract

Syntax: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(内部使用)/

当前行:当前行;

Before

n: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到数组有了更透彻的理解。感谢大家的支持和关注!

推荐阅读

强制从hiveString到array_hive的类型转换
文章来源: 芙蓉财经网
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至405936398@qq.com 举报,一经查实,本站将立刻删除。
相关资讯
虚拟币平台诈骗案例 虚拟币平台诈骗案例分析
虚拟币平台诈骗案例 虚拟币平台诈骗案例分析 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平台下载
虚拟币彩票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...