2017-12-01 3 views
1

데이터 집합에 두 개의 배열, 두 구분 기호로 구분 된 배열이 들어 있습니다. 예 : 14-20-50-60 첫 번째 배열은 - 12 # 2 # 333 # 4에 의해 구분됩니다. #에 의해 구분 된 두 번째 배열하이브 배열 배열에 여러 구분 기호를 지정합니다

에 구분 기호를 어떻게 지정합니까?

입력 14-20-50-60,12 # 2 # 당신은 컬렉션 항목에 대해 여러 구분 기호를 사용할 수 없습니다 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

333 #. 당신은 당신이 아래에서 생각하고있는 것을 달성 할 수 있습니다. 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 

희망이 도움이됩니다.