首页 > 解决方案 > 将火花行转换为案例类,如果值为空则失败

问题描述

我想将数据框转换为数据集 [CC]。

case class CC(id: String, value: String)
df.as[CC]

但是,如果 id 或 value 为 null,我希望操作抛出异常。这可能吗?

标签: apache-spark

解决方案


也许这样:

 val ds = df.map(s=>{
    s.toSeq.foreach(x=>{
      if (x == null) throw new Exception("null value: "+s.mkString(","))
    })
    new CC(s.getString(0),s.getString(1))
  })
    +----+----+
    | _c0| _c1|
    +----+----+
    |   1|   a|
    |   2|null|
    |   3|   b|
    |null|null|
    |   5|null|
    +----+----+

和例外:

`Caused by: java.lang.Exception: null value: 2,null`

推荐阅读