"金玉良缘" 发布的文章

Hive 导入 parquet 数据步骤如下:

查看 parquet 文件的格式

构造建表语句

导入数据

一、查看 parquet 内容和结构

下载地址

点击下载》》》工具下载地址 《《《点击下载
命令

查看结构:

java -jar parquet-tools-1.6.0rc3-SNAPSHOT.jar schema -d data.parquet |head -n 30

查看内容:

java -jar parquet-tools-1.6.0rc3-SNAPSHOT.jar head -n 2 data.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

编写一个.bat文件

具体代码如下:

@echo off
set "rar=D:\Tools\winrar\WinRAR.exe"
for /r %%i   in (*.rar) do "%rar%" x -ad -y %%i %%~dpi
pause

把.bat文件与要解压的rar文件放在同一目录,默认是解压同一目录下的rar文件,解压后的文件名和压缩包的名字一致,并且是递归解压,包括子文件压缩包。