nzload - 当第一列与表元素不匹配时,skiprows 不起作用
Posted
技术标签:
【中文标题】nzload - 当第一列与表元素不匹配时,skiprows 不起作用【英文标题】:nzload - skiprows not working when 1st column is not matching the table elements 【发布时间】:2017-02-17 05:28:43 【问题描述】:当第一行是列标题的固定宽度使用 nzload 时,skiprow 工作正常。但是当我
如果第一行具有相同数量的元素,则可以正常工作。 1HelloWorld2011-12-07 1HelloWorld2011-12-07 2Netezza 2010-02-16
第一行有一个文本,我希望 nzload 跳过它,但由于元素数量不同,nzload 会引发错误 虚拟行 1HelloWorld2011-12-07 2Netezza 2010-02-16
脚本示例: nzload -t "textFixed_tbl" -format fixed -layout "col1 int bytes 1, col2 char(10) bytes 10, col3 date YMD '-' bytes 10" -df /tmp/fixed_width.dat -bf /tmp/testFixedWidth.bad -lf /tmp/testFixedWidth.nzlog -skipRows 1 -maxErrors 1
数据文件 虚拟行 1HelloWorld2011-12-07 2Netezza 2010-02-16
错误: 错误:操作已取消 错误:外部表:错误输入行数达到 maxerrors 限制
记录格式:FIXED Record Null-Indicator:0 记录长度:0 记录分隔符:
记录布局:3 个区域:"col1" INT4 DECIMAL BYTES 1 NullIf &&1 = '', "col2" CHAR(10) INTERNAL BYTES 10, "col3" DATE YMD '-' BYTES 10 NullIf &&3 = ''
统计
读取的记录数:1 读取的字节数:22 跳过的记录数:0 不良记录数:1
加载的记录数:0
经过时间(秒):0.0
【问题讨论】:
【参考方案1】:nzload / 外部表的 skiprows 选项会丢弃指定数量的行,但仍会处理跳过的行。因此,行必须正确形成,并且这种行为不会像您希望/预期的那样起作用。
这在documentation中注明:
您不能使用 SkipRows 选项来处理数据文件中的标题行,因为即使是跳过的行也会被首先处理。因此,标题行中的数据对于外部表定义应该是有效的
【讨论】:
以上是关于nzload - 当第一列与表元素不匹配时,skiprows 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
将第一个文件的第一列与第二个文件中的行匹配,然后将第二个文件中匹配行的最后一列插入第一个文件中的新第一列