我有数据集包含两个数组,两个数组由不同的分隔符分隔。 例: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)
答案 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
希望这有帮助。