学习 Hive(二):从文本到 Parquet

Hive 原生支持以下文件格式:

  • Text File
  • SequenceFile
  • Avro Files
  • ORC Files
  • Parquet

其中 Text File、SquenceFile 和 Avro Files 为行式存储,Parquet 和 ORC Files 为列式存储。

Parquet 与 ORC 参考资料:http://dongxicheng.org/mapreduce-nextgen/columnar-storage-parquet-and-orc/

Parquet 参考资料:http://www.infoq.com/cn/articles/in-depth-analysis-of-parquet-column-storage-format/

通常情况下,数据是以文本文件的形式存储在 HDFS 中,可以通过以下方法将文本格式的表转换为 Parquet 格式的表:

创建 Parquet 格式表:

CREATE TABLE IF NOT EXISTS friends (id INT, name STRING, sex STRING)  
STORED AS  
PARQUET  

创建文本格式表:

CREATE TABLE IF NOT EXISTS friends (id INT, name STRING, sex STRING)  
ROW FORMAT  
DELIMITED FIELDS TERMINATED BY ',';  

加载数据:

LOAD DATA INPATH '/<path>/firend.csv' INTO table friends_txt;  

数据转储:

INSERT OVERWRITE TABLE friends  
SELECT id, name, sex FROM friends_txt;