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