如何忽略不符合架构的 U-SQL EXTRACT 中的无效行?
How do I ignore invalid rows in U-SQL EXTRACT that don't fit schema?
我正在尝试使用以下 U-SQL EXTRACT 语句从 CSV 文件中提取一些数据:
EXTRACT SessionId string,
Latitude double,
Longitude double,
Timestamp int
FROM "wasb://sessions@myaccount.blob.core.windows.net/"
USING Extractors.Csv();
但是我的工作中途失败了,因为有一行不适合这个模式(在巨大的数据集中很常见),因为它的列数错误。如何避免整个提取失败?
将slient:true参数用于Extractors.Csv() ala:
EXTRACT SessionId string,
Latitude double,
Longitude double,
Timestamp int
FROM "wasb://sessions@myaccount.blob.core.windows.net/"
USING Extractors.Csv(silent:true);
请注意,静默标志将执行以下操作:
- 忽略列数不匹配的行
- 将无效值替换为 null 如果列类型可以为 null。
它将仍然错误如果:
- 该值无法转换为预期的不可为 null 的类型。
- 指定编码有一个无效字符。
我正在尝试使用以下 U-SQL EXTRACT 语句从 CSV 文件中提取一些数据:
EXTRACT SessionId string,
Latitude double,
Longitude double,
Timestamp int
FROM "wasb://sessions@myaccount.blob.core.windows.net/"
USING Extractors.Csv();
但是我的工作中途失败了,因为有一行不适合这个模式(在巨大的数据集中很常见),因为它的列数错误。如何避免整个提取失败?
将slient:true参数用于Extractors.Csv() ala:
EXTRACT SessionId string,
Latitude double,
Longitude double,
Timestamp int
FROM "wasb://sessions@myaccount.blob.core.windows.net/"
USING Extractors.Csv(silent:true);
请注意,静默标志将执行以下操作:
- 忽略列数不匹配的行
- 将无效值替换为 null 如果列类型可以为 null。
它将仍然错误如果:
- 该值无法转换为预期的不可为 null 的类型。
- 指定编码有一个无效字符。