Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 将字符串读取为数组<;字符串>;配置单元内sql_Hadoop_Hive_Hiveql - Fatal编程技术网

Hadoop 将字符串读取为数组<;字符串>;配置单元内sql

Hadoop 将字符串读取为数组<;字符串>;配置单元内sql,hadoop,hive,hiveql,Hadoop,Hive,Hiveql,我正在使用配置单元,通过配置单元查询从JSON字符串中读取一些字段。JSON字符串中的一个字段实际上是字符串数组,但存储为字符串,如{…,'arrText':'[“a”,“b”,“c”]',…} 我想在配置单元查询本身中将此字符串作为字符串数组读取 hive (joshua)> > select some_function('["a","b","c"]'); OK ["a",

我正在使用配置单元,通过配置单元查询从JSON字符串中读取一些字段。JSON字符串中的一个字段实际上是字符串数组,但存储为字符串,如
{…,'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"]
希望有帮助