Hive 配置单元拆分函数获取元素数

Hive 配置单元拆分函数获取元素数,hive,hiveql,Hive,Hiveql,我想知道Hive是否有从字符串中获取元素数量的选项,例如david.Udert。我尝试了这个拆分(键入“\\”)[2][3] 这个拆分(键入“\\”)[2:3]不起作用, 有没有办法这样做来把这两个词组合在一起 数组索引以0开始 with t as (select 'Now.I.heard.you.know.that.secret.chord' as mycol) select split(t.mycol,'\\.') as arr ,split(t.mycol,'\\.')[

我想知道Hive是否有从字符串中获取元素数量的选项,例如
david.Udert
。我尝试了这个
拆分(键入“\\”)[2][3]

这个
拆分(键入“\\”)[2:3]
不起作用, 有没有办法这样做来把这两个词组合在一起

  • 数组索引以
    0开始

    with t as (select 'Now.I.heard.you.know.that.secret.chord' as mycol)
    
    select  split(t.mycol,'\\.')    as arr
       ,split(t.mycol,'\\.')[0] as arr_1st_element
       ,split(t.mycol,'\\.')[1] as arr_2nd_element
       ,split(t.mycol,'\\.')[2] as arr_3nd_element
    
    from    t
    ;
    

  • 至少目前不支持阵列切片。如果要切片,请在分割之前进行

    with t as (select 'Now.I.heard.you.know.that.secret.chord' as mycol)
    
    select  split(substring_index(substring_index(t.mycol,'.',7),'.',-3),'\\.')     as slice_option_1
       ,split(regexp_extract(t.mycol,'(.*?\\.){4}((\\.?[^.]*){0,3})',2),'\\.')  as slice_option_2
    
    from    t
    ;
    


“它不起作用”不是一个合理的描述。你有错误吗?问题被卡住了吗?hive-server2服务崩溃了吗?你的电脑着火了吗?你实际想要的结果是什么?
with t as (select 'Now.I.heard.you.know.that.secret.chord' as mycol)

select  split(substring_index(substring_index(t.mycol,'.',7),'.',-3),'\\.')     as slice_option_1
   ,split(regexp_extract(t.mycol,'(.*?\\.){4}((\\.?[^.]*){0,3})',2),'\\.')  as slice_option_2

from    t
;
+--------------------------+--------------------------+
|      slice_option_1      |      slice_option_2      |
+--------------------------+--------------------------+
| ["know","that","secret"] | ["know","that","secret"] |
+--------------------------+--------------------------+