数据湖探索 DLI-使用DataSource语法创建OBS表:示例6:创建OBS非分区表,自定义表的OPTIONS参数

时间:2024-11-11 14:10:59

示例6:创建OBS非分区表,自定义表的OPTIONS参数

示例说明: CS V表是一种以逗号分隔的纯文本文件格式,用于存储和交换数据。它通常用于简单的数据交换,但是它没有结构化数据的概念,因此不适合存储复杂数据类型。于是当file_format为csv时,支持配置更多的OPTIONS参数(参考表3)。

本例创建一个名为table4且存储格式为csv非分区表并使用了额外的OPTIONS参数对数据加以约束。

  • delimiter:数据分隔符,表示使用逗号(,)作为数据之间的分隔符;
  • quote:引用字符,表示使用双引号(”)来表示数据中的引用信息;
  • escape:转义字符,表示使用反斜杠(\)作为数据存储时的转义字符;
  • multiLine:设置需要存储的列数据中不包含回车符或者换行符;
  • dataFormat:表示该csv文件中data字段的指定日期格式为yyyy-MM-dd;
  • timestamoFormat:表示该csv文件中会将时间戳格式指定为yyyy-MM-dd HH:mm:ss;
  • header:表示该csv表中包含表头信息;
  • nullValue:表示设置null来表示csv表中的null值;
  • comment:表示该csv表使用斜杠(/)表示注释的开头;
  • compression:表示该csv表被压缩,此处csv表支持gzip、bzip2和deflate的压缩格式,若不需要压缩,也可以设置为none;
  • encoding:表示该表使用utf-8的数据编码格式,在实际使用中,可以根据您的需求选择utf-8、gb2312和gbk中任一种编码格式,其中默认编码格式为utf-8。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
CREATE TABLE IF NOT EXISTS table4 (
    col_1 STRING,
    col_2 INT
)
USING csv
OPTIONS (
    path 'obs://bucketName/filePath',
    delimiter       = ',',
    quote            = '#',
    escape           = '|',
    multiline        = false,
    dateFormat       = 'yyyy-MM-dd',
    timestampFormat  = 'yyyy-MM-dd HH:mm:ss',
    mode             = 'failfast',
    header           = true,
    nullValue        = 'null',
    comment          = '*',
    compression      = 'deflate',
    encoding         = 'utf - 8'
);
support.huaweicloud.com/sqlref-spark-dli/dli_08_0076.html