Hive 数组在集合中指定多个分隔符

Hive array specifying multiple delimiter in collection

我的数据集包含两个数组,两个数组由不同的分隔符分隔.. 例如:14-20-50-60 是由 - 分隔的第一个数组 12#2#333#4 是由 #..

分隔的第二个数组

创建时 table 我们如何指定分隔符 以 '' 结尾的集合项目 ?

输入 14-20-50-60,12#2#333#4

create table test(first array<string>, second array<string>)
row format delimited
fields terminated by ','
collection items terminated by '-' (How to specify two delimiters in the collection)

集合项不能使用多个分隔符。你可以实现你想要做的,如下所示。我已经使用 SPLIT 函数使用不同的分隔符创建数组。

数据

14-20-50-60,12#2#333#4

SQL - 创建 TABLE

create external table test1(first string, second string)
row format delimited
fields terminated by ','
LOCATION  '/user/cloudera/ramesh/test1';

SQL - SELECT

WITH v_test_array AS
(SELECT split(first, "-") AS first_array,  
        split(second, "#") AS second_array  
   FROM test1)
SELECT first_array[0], second_array[0]
  FROM v_test_array;

输出

14  12

希望这对您有所帮助。