Hadoop 将字符串读取为数组<;字符串>;配置单元内sql
我正在使用配置单元,通过配置单元查询从JSON字符串中读取一些字段。JSON字符串中的一个字段实际上是字符串数组,但存储为字符串,如Hadoop 将字符串读取为数组<;字符串>;配置单元内sql,hadoop,hive,hiveql,Hadoop,Hive,Hiveql,我正在使用配置单元,通过配置单元查询从JSON字符串中读取一些字段。JSON字符串中的一个字段实际上是字符串数组,但存储为字符串,如{…,'arrText':'[“a”,“b”,“c”]',…} 我想在配置单元查询本身中将此字符串作为字符串数组读取 hive (joshua)> > select some_function('["a","b","c"]'); OK ["a",
{…,'arrText':'[“a”,“b”,“c”]',…}
我想在配置单元查询本身中将此字符串作为字符串数组读取
hive (joshua)>
> select some_function('["a","b","c"]');
OK
["a","b","c"]
Time taken: 0.134 seconds, Fetched: 1 row(s)
我可以用一些(内置的蜂巢)来代替一些函数
&完成它而不是为它编写UDF吗
提前感谢不使用udf的一种方法是使用一些预定义的配置单元函数,如split、regex extract等
select split(regexp_extract('["a","b","c"]','^\\["(.*)\\"]$',1),'","');
=> ["a","b","c"]
甚至它也可以处理中间逗号
select split(regexp_extract('["a","b,c","d"]','^\\["(.*)\\"]$',1),'","');
=> ["a","b,c","d"]
希望有帮助