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

时间:2017-12-01 19:20:48

标签: hive hiveql

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

分隔

创建表时我们如何指定分隔符 收集物品由''终止?

输入 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)

1 个答案:

答案 0 :(得分:1)

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

数据

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

SQL - CREATE 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

希望这有帮助。