2017-12-01 5 views
1

データセットに2つの配列があり、両方の配列が異なる区切り記号で区切られています。 例:14-20-50-60は最初の配列です - 12#2#333#4 isコレクション内に複数の区切り文字を指定するハイブ配列

で区切り文字を指定するにはどうすればいいですか?

入力 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

これまで改善しようとしているコードを教えていただけますか? – Ramesh

答えて

0

。あなたは以下のようにして何をしようとしているのかを達成することができます。私は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; 

OUTPUT

14 12 

これが役に立ちます。

関連する問題