Home [Hive] External Partitioned Table (CREATE, INSERT, ALTER)
Post
Cancel

[Hive] External Partitioned Table (CREATE, INSERT, ALTER)

External Partitioned Table 생성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE DATABASE {db} LOCATION 'hdfs://<hdfs_path>';

DROP TABLE {db}.{table};
CREATE EXTERNAL TABLE {db}.{table}
(
    COl1 STRING,
    COl2 STRING,

)
PARTITIONED BY (dt STRING)
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY '\u0001'    
STORED AS TEXTFILE
LOCATION 'hdfs://<hdfs_path>';

MSCK REPAIR TABLE {db}.{table}

이때 FIELDS TERMINATED BY에 들어가는 구분자가 \t인 경우 컬럼 값에 따라 필드가 밀릴 수 있으니 보통은 사용하지 않는 UNICODE(^A)를 사용하는게 좋다. HIVE테이블을 내려받아 파이썬에서 읽을때는 아래 코드 참고

INSERT OVERWRITE

1
2
3
INSERT OVERWRITE TABLE {db].{table} PARTITION(dt = ${hiveconf:DATE})
SELECT
   (...)

DROP PARTITION

1
ALTER TABLE {db}.{table} DROP IF EXISTS PARTITION (dt='2021-07-01')

파이썬에서 \u0001로 구분해서 읽기

1
2
3
4
5
import pandas as pd
pdf = pd.read_csv('log', delimiter='\u0001')
# or 
for idx, x in enumerate(open('log').readlines()):
  tokens = x.split('\u0001')
This post is licensed under CC BY 4.0 by the author.

[Hive] 변수, 파라미터 사용하는 방법

[Shell] 날짜 범위 지정해서 실행