文档首页> 数据湖探索 DLI> 最佳实践> 数据分析> 使用DLI将CSV数据转换为Parquet数据
更新时间:2022-04-26 GMT+08:00
分享

使用DLI将CSV数据转换为Parquet数据

业务场景介绍

Parquet是面向分析型业务的列式存储格式,这种格式可以加快查询速度,查询Parquet格式数据时,只检查所需要的列并对它们的值执行计算,也就是说,只读取一个数据文件或表的一小部分数据。Parquet还支持灵活的压缩选项,因此可以显著减少磁盘上的存储。使用DLI可轻松将CSV格式数据转换为Parquet格式数据。

如果您在HDFS上拥有基于文本的数据文件或者表,而且正在使用Spark SQL对数据执行查询操作,那么强烈推荐将文本数据文件转换为Parquet数据文件,以实现性能和存储收益。当然,转换需要时间,但查询性能的提升在某些情况下可能达到30倍或更高,存储的节省可高达75%!

操作流程概述

使用DLI将CSV数据转换为Parquet数据主要包括3个步骤:

步骤1:注册账号。使用DLI对数据进行分析之前,需要注册华为云账号并进行实名认证。

步骤2:创建并上传数据。将数据上传到对象存储服务OBS。

步骤3:使用DLI将CSV数据转换为Parquet数据。将CSV数据导入DLI,并将CSV数据转换为Parquet数据。

步骤1:注册账号

注册华为云账号并进行实名认证。

注册账号具体步骤可参考账号注册

实名认证具体步骤可参考实名认证

如果您已完成华为云账号注册和实名认证,可跳过该步骤。

步骤2:创建并上传数据

  1. 创建CSV数据,例如,如图1所示test.csv:
    图1 创建test.csv文件
  2. 在OBS上建桶obs-csv-parquet,并将test.csv文件上传至OBS,如图2所示:
    图2 上传CSV数据至OBS
  3. 在OBS上创建一个新的桶obs-parquet-data用于存储转换的Parquet数据。

步骤3:使用DLI将CSV数据转换为Parquet数据

  1. 在DLI控制台总览页面左侧,单击“SQL编辑器”,进入SQL作业编辑器页面。
  2. 在SQL作业编辑器左侧,选择“数据库”页签,单击创建名字为demo的数据库。
  3. 在DLI的SQL编辑窗口,执行引擎选择“spark”,队列选择“default”,数据库选择为“demo”。输入以下建表语句,创建OBS表test_csv_hw并导入test.csv数据。
    create table test_csv_hw(id1 int, id2 int, id3 int, id4 int, id5 int)
     using csv
     options(
     path 'obs://obs-csv-parquet/test.csv'
     )
  4. 在DLI的SQL编辑窗口,执行以下语句可以查询表test_csv_hw中的数据。
    图3 查询表test_csv_hw
  5. 在DLI的SQL编辑窗口中创建OBS表test_parquet_hw。
    create table `test_parquet_hw` (`id1` INT, `id2` INT, `id3` INT, `id4` INT, `id5` INT)
    using parquet
    options (
    path 'obs://obs-parquet-data/'
    )

    不需要指明具体的文件,因为在将数据从CSV格式转换为Parquet格式之前,不存在任何Parquet文件。

  6. 在DLI的SQL编辑窗口中将CSV数据转换为Parquet数据并存储在OBS中。
    insert into test_parquet_hw select * from test_csv_hw
  7. 检查结果,如图4所示,系统自动创建了一个文件用于保存结果。
    图4 保存Parquet数据
分享:

    相关文档

    相关产品

close