Hive 導入 parquet 數據步驟如下:
- 查看 parquet 文件的格式
- 構造建表語句
- 倒入數據
一、查看 parquet 內容和結構
下載地址
命令
-
查看結構:
java -jar parquet-tools-1.6.0rc3-SNAPSHOT.jar schema -d activity.201711171437.0.parquet |head -n 30
-
查看內容:
java -jar parquet-tools-1.6.0rc3-SNAPSHOT.jar head -n 2 activity.201711171437.0.parquet
parquet 和 hive 的 field 類型映射關系
BINARY -> STRING
BOOLEAN -> BOOLEAN
DOUBLE -> DOUBLE
FLOAT -> FLOAT
INT32 -> INT
INT64 -> BIGINT
INT96 -> TIMESTAMP
BINARY + OriginalType UTF8 -> STRING
BINARY + OriginalType DECIMAL -> DECIMAL
二、hive 命令
創建表
create table test_data(a bigint) stored as parquet;
# 創建表時可選擇數據存儲格式
Tips:分區 partitioned by (date string)
本地導入數據
load data local inpath '/path/data.parquet' into table test_database.test_table_name;
導入HDFS中的數據
load data inpath '/path/data.parquet' into table test_database.test_table_name;
Tips:區別是沒有 local
三、pandas 數據導成 parquet 文件
先安裝 pyarrow
或 fastparquet
庫
import pandas as pd
>>> df = pd.DataFrame(data={'col1': [1, 2], 'col2': [3, 4]})
>>> df.to_parquet('df.parquet.gzip', compression='gzip')
>>> pd.read_parquet('df.parquet.gzip')
col1 col2
0 1 3
1 2 4