[HADOOP] 왜 FIELDS이있는 MySQL 등으로 동봉 한 하이브하지?
HADOOP왜 FIELDS이있는 MySQL 등으로 동봉 한 하이브하지?
여기 내 경우는 다음과 같습니다
입력 라인 :
"vijay" <\t> "a-b-c","a-c-d","a-d-c"
"kumar" <\t> "a-b-c","b-c-d""
나는이 같은 테이블을 생성 :
hive >create table user_infos(name string, path ARRAY<String> --i need array only)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' COLLECTION ITEMS
TERMINATED BY ',' LINES TERMINATED BY '\n' STORED AS TEXTFILE ;
출력받은 :
hive > select * from user_infos ;
"vijay" ["**\"a-b-c\"**","**\"a-c-d\"**","**\"a-d-c\"**"]
"kumar" ["**\"a-b-c\"**","**\"b-c-d\"**"]
여기에 문제가 있습니다 : 내가 \, 즉 따옴표를 원하지 않는다 "
필수 출력 :
vijay ["a-b-c","a-c-d","a-d-c"]
kumar ["a-b-c","b-c-d"]
이 사용하지 않는 사용자 정의 Serde를 달성하기 위해 왜 어떤이있다. MySQL의에서 등으로 동봉 원하는 것은?
해결법
-
==============================
1.내 필드는 큰 따옴표로 묶고 세미콜론으로 구분되어 나는이 같은 문제를 부착했다 (). 내 테이블 이름은 employee1입니다.
내 필드는 큰 따옴표로 묶고 세미콜론으로 구분되어 나는이 같은 문제를 부착했다 (). 내 테이블 이름은 employee1입니다.
그래서 링크를 검색하고 난 이것에 대한 완벽한 솔루션을 발견했다.
@ ramisetty.vijay : 예, 우리는이에 대한 serde을 사용해야합니다. 이 링크를 사용하여 serde 항아리를 다운로드하십시오 https://github.com/downloads/IllyaYalovyy/csv-serde/csv-serde-0.9.1.jar
다음 하이브 프롬프트를 사용하여 이하의 절차 :
add jar path/to/csv-serde.jar; create table employee1(id string, name string, addr string) row format serde 'com.bizo.hive.serde.csv.CSVSerde' with serdeproperties( "separatorChar" = "\;", "quoteChar" = "\"") stored as textfile ;
다음 쿼리 아래 사용하여 주어진 경로에서 데이터를로드 :
load data local inpath 'path/xyz.csv' into table employee1;
다음 실행 :
select * from employee1;
감사.
from https://stackoverflow.com/questions/21156071/why-dont-hive-have-fields-enclosed-by-like-in-mysql by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 어떻게 하이브에서 더블 구분 기호 (||) 할 수 있습니까? (0) | 2019.10.16 |
---|---|
[HADOOP] 하둡 플러그인 이클립스 우분투에 표시되지 (0) | 2019.10.16 |
[HADOOP] 하둡 스트리밍을위한 inputformat로 OrcNewInputformat (0) | 2019.10.16 |
[HADOOP] 어떻게 봄 원사 응용 프로그램에 Kerberos 티켓을 전달할 수 있습니다 (0) | 2019.10.16 |
[HADOOP] dfs.blocksizeaffect 기존 데이터의 값을 변경합니까 (0) | 2019.10.16 |