복붙노트

[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. ==============================

    1.새 데이터를 두 가지 방법으로 테이블에 삽입 할 수 있습니다.

    새 데이터를 두 가지 방법으로 테이블에 삽입 할 수 있습니다.

  2. ==============================

    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. ==============================

    3.데이터에서 작은 따옴표와 함께 사용하십시오.

    데이터에서 작은 따옴표와 함께 사용하십시오.

    insert into table test_hive values ('1','puneet');
    
  4. ==============================

    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. ==============================

    5.비슷한 문제에 직면하여 임팔라를 사용하여 테이블에 단일 행을 삽입했으며 동일한 쿼리를 처리했습니다. 이것은 확실히 작동합니다.

    비슷한 문제에 직면하여 임팔라를 사용하여 테이블에 단일 행을 삽입했으며 동일한 쿼리를 처리했습니다. 이것은 확실히 작동합니다.

  6. ==============================

    6.대답은 받아 들일 수 있지만, Hive 0.14부터 레코드 수준 작업이 허용됩니다. 올바른 구문과 쿼리는 다음과 같습니다.

    대답은 받아 들일 수 있지만, Hive 0.14부터 레코드 수준 작업이 허용됩니다. 올바른 구문과 쿼리는 다음과 같습니다.

    INSERT INTO TABLE tweet_table VALUES ('data');
    
  7. from https://stackoverflow.com/questions/16980773/insert-data-into-hive-table by cc-by-sa and MIT license