[HADOOP] Hive (JSON 파일)를 사용하여 Hbase에 데이터 삽입
HADOOPHive (JSON 파일)를 사용하여 Hbase에 데이터 삽입
하이브를 사용하여 hbase에 이미 테이블을 만들었습니다.
hive> CREATE TABLE hbase_table_emp(id int, name string, role string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:name,cf1:role")
TBLPROPERTIES ("hbase.table.name" = "emp");
데이터를로드 할 다른 테이블을 만들었습니다.
hive> create table testemp(id int, name string, role string) row format delimited fields terminated by '\t';
hive> load data local inpath '/home/user/sample.txt' into table testemp;
마지막으로 hbase 테이블에 데이터를 삽입하십시오.
hive> insert overwrite table hbase_table_emp select * from testemp;
hive> select * from hbase_table_emp;
OK
123 Ram TeamLead
456 Silva Member
789 Krishna Member
time taken: 0.160 seconds, Fetched: 3 row(s)
테이블은 hbase에서 다음과 같이 보입니다.
hbase(main):002:0> scan 'emp'
ROW COLUMN+CELL
123 column=cf1:name, timestamp=1422540225254, value=Ram
123 column=cf1:role, timestamp=1422540225254, value=TeamLead
456 column=cf1:name, timestamp=1422540225254, value=Silva
456 column=cf1:role, timestamp=1422540225254, value=Member
789 column=cf1:name, timestamp=1422540225254, value=Krishna
789 column=cf1:role, timestamp=1422540225254, value=Member
3 row(s) in 2.1230 seconds
JSON 파일에 대해 동일한 작업을 수행 할 수 있습니까?
{"id": 123, "name": "Ram", "role":"TeamLead"}
{"id": 456, "name": "Silva", "role":"Member"}
{"id": 789, "name": "Krishna", "role":"Member"}
할 일 :
hive> load data local inpath '/home/user/sample.json' into table testemp;
도와주세요 ! :)
해결법
-
==============================
1.get_json_object 함수를 사용하여 데이터를 JSON 객체로 파싱 할 수 있습니다. 예를 들어, JSON 데이터로 스테이징 테이블을 만드는 경우 :
get_json_object 함수를 사용하여 데이터를 JSON 객체로 파싱 할 수 있습니다. 예를 들어, JSON 데이터로 스테이징 테이블을 만드는 경우 :
DROP TABLE IF EXISTS staging; CREATE TABLE staging (json STRING); LOAD DATA LOCAL INPATH '/local/path/to/jsonfile' INTO TABLE staging;
그런 다음 get_json_object를 사용하여 테이블에로드 할 속성을 추출하십시오.
INSERT OVERWRITE TABLE hbase_table_emp SELECT get_json_object(json, "$.id") AS id, get_json_object(json, "$.name") AS name, get_json_object(json, "$.role") AS role FROM staging;
이 기능에 대한보다 포괄적 인 논의가 여기에 있습니다.
from https://stackoverflow.com/questions/28350258/insert-data-into-hbase-using-hive-json-file by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 성능을 높이기 위해 사용 된 인스턴스의 수에 따라 hadoop에서 매퍼와 리듀서를 늘리는 방법은 무엇입니까? (0) | 2019.06.10 |
---|---|
[HADOOP] 감속기에서 데이터 스큐를 처리하는 Hadoop (0) | 2019.06.10 |
[HADOOP] 하이브 문자열에서 중복을 제거하는 방법? (0) | 2019.06.10 |
[HADOOP] 명령 줄을 사용하여 hdfs 분산 파일에서 총 줄 수 찾기 (0) | 2019.06.10 |
[HADOOP] Mac OS에서 hadoop 실행 (0) | 2019.06.10 |