Scala:在scala中检查变量是不是为整数

Posted

技术标签:

【中文标题】Scala:在scala中检查变量是不是为整数【英文标题】: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 Spark Data Frames - Check if column is of type integer的可能重复 它在 python 中.. 我想要在 scala 中 完成:创建一个udf val checkint=udf((a:String)=> val i="[0-9]*".r a match case i()=>true case _ =>false ) 并且能够获得所需的输出。:) 【参考方案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;  

【讨论】:

以上是关于Scala:在scala中检查变量是不是为整数的主要内容,如果未能解决你的问题,请参考以下文章

Scala udf 检查 df 列值是不是在列表中

Scala 项目是不是有任何 OWASP 检查工具?

如何使用 spark/scala 检查是不是存在大查询表

如何在 spark scala 中检查与其关联的列名和数据是不是匹配

Spark Scala,如何检查数据框中是不是存在嵌套列

Scala:检查当前时间戳是不是大于我的数据框中的时间戳列