[HADOOP] 변환 하이브를 매핑 할 문자열
HADOOP변환 하이브를 매핑 할 문자열
나는 4 개의 기둥을 가진 테이블을 가지고있다.
C1 C2 C3 C4
--------------------
x1 y1 z1 d1
x2 y2 z2 d2
이제는 키와 값 쌍이있는 맵 데이터 유형으로 변환하고 별도의 테이블에로드하려고합니다.
create table test
(
level map<string,string>
)
row format delimited
COLLECTION ITEMS TERMINATED BY '&'
map keys terminated by '=';
이제 SQL 아래에서 데이터를로드하는 중입니다.
insert overwrite table test
select str_to_map(concat('level1=',c1,'&','level2=',c2,'&','level3=',c3,'&','level4=',c4) from input;
테이블에서 쿼리를 선택하십시오.
select * from test;
{"level1":"x1","level2":"y1","level3":"z1","level4":"d1=\\"}
{"level1":"x2","level2":"y2","level3":"z2","level4":"d2=\\"}
나는 왜 내가 마지막 값으로 여분의 "= \ \"을 얻는 지 알지 못했다.
나는 데이터를 다시 확인하지만 문제는 지속됩니다.
좀 도와 줄 수있어?
해결법
-
==============================
1.str_to_map (text, delimiter1, delimiter2) - 텍스트를 파싱하여지도를 만듭니다. 두 구분자를 사용하여 텍스트를 키 - 값 쌍으로 분리하십시오. 첫 번째 구분 기호는 쌍을 구분하고 두 번째 구분 기호는 키와 값을 구분합니다. 매개 변수가 하나만 주어지면 기본 구분 기호가 사용됩니다. ','는 구분 기호 1로, '='는 구분 기호 2로 사용됩니다.
str_to_map (text, delimiter1, delimiter2) - 텍스트를 파싱하여지도를 만듭니다. 두 구분자를 사용하여 텍스트를 키 - 값 쌍으로 분리하십시오. 첫 번째 구분 기호는 쌍을 구분하고 두 번째 구분 기호는 키와 값을 구분합니다. 매개 변수가 하나만 주어지면 기본 구분 기호가 사용됩니다. ','는 구분 기호 1로, '='는 구분 기호 2로 사용됩니다.
다음 명령을 실행하여이 정보를 얻을 수 있습니다.
describe function extended str_to_map
구문에는 두 가지 오류가 있습니다.
insert overwrite table test select str_to_map(concat('level1=',c1,'&','level2=',c2,'&','level3=',c3,'&','level4=',c4) from input;
첫째, 하나의 괄호)가 누락되었습니다.
둘째, 기본적으로 오류가 아니라 구분 기호를 지정하지 않아서 함수가 구분 기호에 대한 기본값을 사용하므로 결과에 ','가 표시됩니다.
현재 형식으로 출력을 얻으려면 다음 쿼리를 시도해야합니다.
insert overwrite table test select str_to_map(concat('level1=',c1,'&','level2=',c2,'&','level3=',c3,'&','level4=',c4),'&','=') from input;
from https://stackoverflow.com/questions/23023068/string-to-map-conversion-hive by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] flume을 통해 트위터에서 데이터를 다운로드 할 수 없음 (0) | 2019.08.03 |
---|---|
[HADOOP] 아파치 하이브가 여러 클라이언트 쿼리를 처리하도록 허용하는 방법 (0) | 2019.08.03 |
[HADOOP] hadoop 분산 시스템 노드에서 파이썬 패키지 관련 문제 (0) | 2019.08.03 |
[HADOOP] Hadoop과 같은 분산 컴퓨팅을 사용하여 이미지를 Jpeg2000으로 인코딩 (0) | 2019.08.03 |
[HADOOP] hadoop map-reduce 작업에서 파일을 어떻게 만들 수 있습니까? (0) | 2019.08.03 |