【发布时间】:2015-01-29 02:20:07
【问题描述】:
H,
我正在寻找数据架构验证的任何示例。
是否可以使用级联或烫伤?
例如
姓名:字符串,年龄:整数
我们说我们的数据应该符合上述架构
然后我们可以验证数据是否真的属于那种类型
谢谢
【问题讨论】:
H,
我正在寻找数据架构验证的任何示例。
是否可以使用级联或烫伤?
例如
姓名:字符串,年龄:整数
我们说我们的数据应该符合上述架构
然后我们可以验证数据是否真的属于那种类型
谢谢
【问题讨论】:
在 Scala 中,您可以声明您的类型:
case class Record(name: String, age: Int)
然后假设您的数据是 CSV,使用 Scalding 类型安全 API:
val lines: TypedPipe[String] = TypedPipe.from(TextLine("data.csv"))
val records: TypedPipe[Record] = lines.map{ line =>
line.split(",").toList match {
case List(name, age) => Record(name, age.toInt)
case _ => throw new BadSchemaException(line)
}
}
如果您想捕获不良记录并且不让您的工作失败,请参阅 RichPipe 类中的 addTrap 方法。
【讨论】:
陷阱不适用于应用程序流控制。根据您的应用程序验证规则设置布尔字段并过滤掉不良记录是一种更好的方法。我建议你阅读:
http://docs.cascading.org/cascading/2.6/userguide/html/ch08s03.html http://docs.cascading.org/cascading/2.6/userguide/html/ch11s09.html#handling-bad-data
【讨论】: