[HADOOP] 하이브 테이블에 데이터 삽입
HADOOP하이브 테이블에 데이터 삽입
Cygwin 배포본을 사용하여 Hadoop 0.20.3과 Hive 0.11.0을 설치했습니다.
우선, 하이브 CLI를 사용하는 방법을 이해할 수 없습니다.
hive> show tables;
들어가면 아무 일도 일어나지 않습니다. 하이브 -e / -f를 사용하여 쿼리를 실행할 수 있습니다.
그런 다음 테이블을 만들었습니다.
CREATE TABLE tweet_table(
tweet STRING
)
COMMENT 'Table of string'
하지만 어떻게이 테이블에 데이터를 삽입 할 수 있습니까? 몇 가지 INSERT INTO 예제를 볼 수 있지만 시도 할 때 :
INSERT INTO TABLE tweet_table (tweet) VALUES ("data")
오류가 있습니다.
FAILED: ParseException line 1:30 cannot recognize input near '(' 'tweet' ')' in select clause
테이블에 데이터를 추가하려면 어떻게합니까?
해결법
-
==============================
1.새 데이터를 두 가지 방법으로 테이블에 삽입 할 수 있습니다.
새 데이터를 두 가지 방법으로 테이블에 삽입 할 수 있습니다.
-
==============================
2.이미 일부 데이터가있는 테이블 pre_loaded_tbl이있는 경우 트릭을 사용하여 다음 쿼리로 테이블에 데이터를로드 할 수 있습니다.
이미 일부 데이터가있는 테이블 pre_loaded_tbl이있는 경우 트릭을 사용하여 다음 쿼리로 테이블에 데이터를로드 할 수 있습니다.
INSERT INTO TABLE tweet_table SELECT "my_data" AS my_column FROM pre_loaded_tbl LIMIT 5;
또한 "my_data"는 pre_loaded_tbl의 모든 데이터와 독립적입니다. 모든 데이터를 선택하고 열 이름 (여기에서 my_data 및 my_column)을 쓸 수 있습니다. Hive는 동일한 열 이름을 요구하지 않습니다. 그러나 select 문의 구조는 tweet_table의 구조와 동일해야합니다. limit를 사용하여 tweet_table에 삽입 할 수있는 횟수를 결정할 수 있습니다.
그러나 '테이블을 만들지 않은 경우 위의 답변에 파일 복사 또는 데이터로드 명령을 사용하여 데이터를로드해야합니다.
-
==============================
3.데이터에서 작은 따옴표와 함께 사용하십시오.
데이터에서 작은 따옴표와 함께 사용하십시오.
insert into table test_hive values ('1','puneet');
-
==============================
4.테이블에 파티션이 없으면 코드는 다음과 같습니다.
테이블에 파티션이 없으면 코드는 다음과 같습니다.
테이블 table_name에 삽입하십시오. col_a, col_b, col_c from another_table (소스 테이블)
- 제한 조건, 그룹 기준, 주문 별 등의 조건을 적용 할 수 있습니다.
테이블에 파티션이 있다면 코드는 다음과 같습니다.
set hive.exec.dynamic.partition = true; set hive.exec.dynamic.partition.mode = nonstrict;
테이블 table_name 파티션에 삽입 (partition_col1, paritition_col2) col_a, col_b, col_c, partition_col1, partition_col2를 선택하십시오. another_table (소스 테이블)
- 제한 조건, 그룹 기준, 주문 별 등의 조건을 적용 할 수 있습니다.
-
==============================
5.비슷한 문제에 직면하여 임팔라를 사용하여 테이블에 단일 행을 삽입했으며 동일한 쿼리를 처리했습니다. 이것은 확실히 작동합니다.
비슷한 문제에 직면하여 임팔라를 사용하여 테이블에 단일 행을 삽입했으며 동일한 쿼리를 처리했습니다. 이것은 확실히 작동합니다.
-
==============================
6.대답은 받아 들일 수 있지만, Hive 0.14부터 레코드 수준 작업이 허용됩니다. 올바른 구문과 쿼리는 다음과 같습니다.
대답은 받아 들일 수 있지만, Hive 0.14부터 레코드 수준 작업이 허용됩니다. 올바른 구문과 쿼리는 다음과 같습니다.
INSERT INTO TABLE tweet_table VALUES ('data');
from https://stackoverflow.com/questions/16980773/insert-data-into-hive-table by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 그러나 그들은 의사 모드에서 오류를 고안한다. (0) | 2019.07.08 |
---|---|
[HADOOP] YARN의 작업에 대한 총 리소스 할당 (0) | 2019.07.08 |
[HADOOP] 와일드 카드를 사용하는 Hadoop DistCp? (0) | 2019.07.08 |
[HADOOP] HDFS가 데이터를 저장하는 곳 (0) | 2019.07.08 |
[HADOOP] Hive에서 날짜 차이를 계산하는 방법 (0) | 2019.07.07 |