Hive将csv导入表后以parquet格式存储

本文介绍了如何在Hive中将CSV文件导入为表,并将其存储为Parquet格式。首先,在S3上创建了存储CSV和Parquet文件的目录。通过创建Hive表并指定csv文件路径,将CSV数据加载到Hive表中。由于CSV数据是逗号分隔的,因此导入时使用textfile格式。然后,创建一个Parquet格式的Hive表,并将CSV表的数据插入到新表中,完成转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如题:
其实这样的实例网上一大堆,我只是搬来留待以备不时之需,话不多说开始吧。

场景

我在AWS的S3里面创建了两个文件夹,分别代表着存储csv文件和parquet格式的文件,
首先我需要把csv文件导到hive表中,这里直接创建表建立映射路径即可:

CREATE EXTERNAL TABLE IF NOT EXISTS `lyb`(
  `code` string COMMENT 'import id', 
  `vin` string COMMENT 'import name', 
  
Hive导入CSV文件通常涉及到两个步骤:创建格并指定适当的序列化器,然后加载数据。 1. 创建CSV格式格[^1]: ```sql CREATE TABLE IF NOT EXISTS your_table_name ( -- 填写实际字段名,如uid, uname, age col1 string, col2 string, col3 int ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' STORED AS TEXTFILE; -- 或者你可以选择TEXTFILE, ORC, PARQUET存储格式 -- 如果已知文件路径,可以直接加载数据 LOAD DATA LOCAL INPATH '/path/to/your/csv_file.csv' INTO TABLE your_table_name; ``` 2. 导入CSV文件Parquet格式: 如果你想要将CSV文件转换成Parquet格式,首先创建一个Parquet,然后删除现有的CSV(这里假设`csv2`是你要替换的): ```sql DROP TABLE IF EXISTS csv2; CREATE TABLE csv2 ( -- 同上填写字段定义 ) ROW FORMAT SERDE 'org.apache.hadoop.hive.parquet.serde.ParquetHiveSerDe' STORED AS PARQUET; -- 由于Parquet不支持直接从文本文件导入,先将CSV转换为临时的TextFile CREATE TEMPORARY TABLE temp_table LIKE csv2; INSERT OVERWRITE TABLE temp_table SELECT * FROM default.csv2; -- 然后再将临时转换为Parquet格式 ALTER TABLE temp_table SET TBLPROPERTIES ('orc.compress'='ZLIB'); ANALYZE TABLE temp_table COMPUTE STATISTICS; MSCK REPAIR TABLE temp_table; DROP TABLE csv2; RENAME TABLE temp_table TO csv2; ``` 请注意,在实际操作时,可能需要根据你的具体环境调整文件路径和名。完成上述步骤后,你可以通过`SELECT * FROM csv2`查询导入的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值