数据湖探索 DLI-导入数据:参数说明
参数说明
参数 |
描述 |
---|---|
folder_path |
原始数据文件夹或者文件的OBS路径。 |
db_name |
数据库名称。若未指定,则使用当前数据库。 |
table_name |
需要导入数据的 DLI 表的名称。 |
以下是可以在导入数据时使用的配置选项:
- DATA_TYPE: 指定导入的数据类型,当前支持 CS V、Parquet、ORC、JSON、Avro类型,默认值为“CSV”。
配置项为OPTIONS('DATA_TYPE'='CSV')
导入CSV和JSON文件时,有三种模式可以选择:
- PERMISSIVE:选择PERMISSIVE模式时,如果某一列数据类型与目标表列数据类型不匹配,则该行数据将被设置为null。
- DROPMALFORMED:选择DROPMALFORMED模式时,如果某一列数据类型与目标表列数据类型不匹配,则不导入该行数据。
- FAILFAST:选择FAILFAST模式时,如果某一列类型不匹配,则会抛出异常,导入失败。
模式设置可通过在OPTIONS中添加 OPTIONS('MODE'='PERMISSIVE')进行设置。
- DELIMITER:可以在导入命令中指定分隔符,默认值为“,”。
配置项为OPTIONS('DELIMITER'=',')。
对于CSV数据,支持如下所述分隔符:
- 制表符tab,例如:'DELIMITER'='\t'。
- 任意的二进制字符,例如:'DELIMITER'='\u0001(^A)'。
- 单引号('),单引号必须在双引号(" ")内。例如:'DELIMITER'= "'"。
- DLI表还支持\001(^A)和\017(^Q),例如:'DELIMITER'='\001(^A)','DELIMITER'='\017(^Q)'。
- QUOTECHAR:可以在导入命令中指定引号字符。默认值为"。
配置项为OPTIONS('QUOTECHAR'='"')
- COMMENTCHAR:可以在导入命令中指定注释字符。在导入操作期间,如果在行的开头遇到注释字符,那么该行将被视为注释,并且不会被导入。默认值为#。
- HEADER:用来表示源文件是否有表头。取值范围为“true”和“false”。“true”表示有表头,“false”表示无表头。默认值为“false”。如果没有表头,可以在导入命令中指定FILEHEADER参数提供表头。
配置项为OPTIONS('HEADER'='true')
- FILEHEADER:如果源文件中没有表头,可在LOAD DATA命令中提供表头。
- ESCAPECHAR:如果用户想在CSV上对Escape字符进行严格验证,可以提供Escape字符。默认值为“\\”。
配置项为OPTIONS('ESCAPECHAR'='\\')
如果在CSV数据中输入ESCAPECHAR,该ESCAPECHAR必须在双引号(" ")内。例如:"a\b"。
- MAXCOLUMNS:该可选参数指定了在一行中,CSV解析器解析的最大列数。
配置项为OPTIONS('MAXCOLUMNS'='400')
表2 MAXCOLUMNS 可选参数名称
默认值
最大值
MAXCOLUMNS
2000
20000
设置MAXCOLUMNS Option的值后,导入数据会对executor的内存有要求,所以导入数据可能会由于executor内存不足而失败。
- DATEFORMAT:指定列的日期格式。
OPTIONS('DATEFORMAT'='dateFormat')
- 默认值为:yyyy-MM-dd。
- 日期格式由Java的日期模式字符串指定。在Java的日期和时间模式字符串中,未加单引号(')的字符'A' 到'Z' 和'a' 到'z' 被解释为模式字符,用来表示日期或时间字符串元素。若模式字符使用单引号 (') 引起来,则在解析时只进行文本匹配,而不进行解析。Java模式字符定义请参见表3。
表3 日期及时间模式字符定义 模式字符
日期或时间元素
示例
G
纪元标识符
AD
y
年份
1996; 96
M
月份
July; Jul; 07
w
年中的周数
27(该年的第27周)
W
月中的周数
2(该月的第2周)
D
年中的天数
189(该年的第189天)
d
月中的天数
10(该月的第10天)
u
星期中的天数
1 = 星期一, ..., 7 = 星期日
a
am/pm 标记
pm(下午时)
H
24小时数(0-23)
2
h
12小时数(1-12)
12
m
分钟数
30
s
秒数
55
S
毫秒数
978
z
时区
Pacific Standard Time; PST; GMT-08:00
- TIMESTAMPFORMAT:指定列的时间戳格式。
OPTIONS('TIMESTAMPFORMAT'='timestampFormat')
- 默认值为:yyyy-MM-dd HH:mm:ss。
- 时间戳格式由Java的时间模式字符串指定。Java时间模式字符串定义详见表3 日期及时间模式字符定义。
- 什么是数据湖探索服务_数据湖探索DLI用途与特点
- 什么是Spark SQL作业_数据湖探索DLISpark SQL作业
- 什么是跨源连接-数据湖探索DLI跨源连接
- 什么是弹性资源池_数据湖探索DLI弹性资源池
- MySQLdump导入数据库_MySQL建立数据库_MySQL数据库导出
- 什么是Flink OpenSource SQL_数据湖探索_Flink OpenSource SQL
- 华为云CodeArts API_接口迁移_接口导入
- ModelArts推理部署_OBS导入_模型包规范-华为云
- 华为云内容审核服务_内容审核有什么作用_华为云内容审核的优势
- GaussDB查版本命令_GaussDB命令参考_高斯数据库查版本命令-华为云