hive []里的字段计数问题@TOC

欢迎使用Markdown编辑器

例如有下面一个字段,需要计算[]中的数字个数

string1
 []
 [9005]
 [9005,9006]
 [9005,9001,9002,9008,9007,9004,9007,9003]
 [9004,9002]

看到这个问题,第一想法是计算[]中,的个数,这时可以用instr函数。

但是这个问题主要需要解决的是为空和1个数字的问题,可以使用下面这种方法:

SELECT
 case
 when length(ext[‘string1’])=2 then 0
 when length(ext[‘string1’])=6 then 1
 else length(ext[‘string1’])-length(replace(ext[‘string1’],’,’,’’))+1 end string1
 from table ;

把逗号用空格替换以后,计算字符个数,通过字符个数来计算数字的个数。