架构验证

时间:2015-01-29 02:20:08

标签: cascading scalding

H,

我正在寻找数据架构验证的任何示例。

是否可以使用级联或烫洗。

例如

名称:字符串,年龄:国际

我们说我们的数据应该确认上面的架构

然后我们可以验证数据是否真的属于那种类型

由于

2 个答案:

答案 0 :(得分:0)

在Scala中,您可以声明您的类型:

case class Record(name: String, age: Int)

然后假设您的数据是CSV格式,请使用Scalding Type-safe 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方法。

答案 1 :(得分:0)

陷阱不适用于应用程序流控制。根据应用程序验证规则设置布尔字段并过滤掉不良记录是一种更好的方法。我建议你阅读:

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