【发布时间】:2024-01-07 20:25:01
【问题描述】:
我正在尝试快速加载一些数据。第二列应被视为小数,但是当我尝试加载数据时,我不断收到 2679 个错误字符错误。关于发生了什么有什么建议吗?
#data
29499512266332107004116346230154901061,22.40
79270112045695798581952128836258811725,2.31
79270112045695798581952128836258811725,0.47
79270112045695798581952128836258811725,3.10
79270112045695798581952128836258811725,1.14
#fastload
sessions 16;
SLEEP 10;
TENACITY 2;
.LOGON s/u,p;
DROP TABLE db.table;
DROP TABLE db.table_ERR1;
DROP TABLE db.table_ERR2;
create table db.table(
id varchar(100),
tos dec(7,2)) no primary index;
BEGIN LOADING
db.table
ERRORFILES
db.table_ERR1,
db.table_ERR2
CHECKPOINT 500000 ;
SET record vartext "," NOSTOP;
DEFINE
id (varchar(100)),
tos (VARCHAR(15))
FILE= upload.txt;
INSERT INTO db.table
VALUES
(
:id,
:tos
);
END LOADING;
LOGOFF;
.QUIT;
【问题讨论】:
-
日志表没有告诉你错误发生在哪一行吗?
-
它发生在所有行上。
-
您有什么理由将
tos定义为varchar?我现在无法访问 Fastload,但我认为您需要将 TOS 列定义为与目标表中相同的列,或者将其转换为插入语句::tos (decimal(7,2)。 -
不,我很确定你必须在 fastload 中定义为 varchar。
-
所以,我想通了。我被快速加载的数据来自一个 hadoop 流式作业,并且在行尾附加了一个选项卡。删除标签后,一切正常。