【问题标题】:Scala:Checking whether a variable is an integer or not in scalaScala:在scala中检查变量是否为整数
【发布时间】:2018-08-09 11:02:58
【问题描述】:

我是 scala 的新手,想编写一个 udf 和方法来检查数据框中的列是否为整数。如果它的 int 则对应的值应该为 true 否则为 false。

【问题讨论】:

  • 你自己已经尝试过什么?代码?
  • def checkint(a:String)={ val i="[0-9]*".r a match{ case i()=>true case _=>false } }
  • 它在 python 中.. 我想要在 scala 中
  • 完成:创建一个udf val checkint=udf((a:String)=> {val i="[0-9]*".r a match{ case i()=>true case _ =>false } } ) 并且能够获得所需的输出。:)

标签: scala apache-spark-sql user-defined-functions


【解决方案1】:

创建一个udf,它以String为参数并返回Boolean,在udf内直接将字符串转换为Try块内的整数,稍后检查它是success还是failure如下所示

import org.apache.spark.sql.functions._
import scala.util.Try
import scala.util.Success

val checkIntUDF = udf { (x: String) => val y = Try(x.toInt); y match { case Success(x) => true; case _ => false; } }

【讨论】:

    猜你喜欢
    • 2011-04-08
    • 2011-09-18
    • 1970-01-01
    • 2013-10-14
    • 2011-01-12
    • 2014-01-25
    • 1970-01-01
    • 2015-02-25
    • 2011-03-30
    相关资源
    最近更新 更多