【问题标题】:Schema validation模式验证
【发布时间】:2015-01-29 02:20:07
【问题描述】:

H,

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

是否可以使用级联或烫伤?

例如

姓名:字符串,年龄:整数

我们说我们的数据应该符合上述架构

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

谢谢

【问题讨论】:

    标签: cascading scalding


    【解决方案1】:

    在 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 方法。

    【讨论】:

    • 由于元组大小限制,这种方法会有任何限制吗?
    【解决方案2】:

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

    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

    【讨论】:

      猜你喜欢
      • 2019-04-27
      • 2012-05-02
      • 2012-03-29
      • 2011-06-02
      • 2011-06-08
      • 2019-02-16
      • 2010-11-22
      • 2011-06-30
      • 2013-01-13
      相关资源
      最近更新 更多