整数、长整数或双精度类型作为 Spark UDF 的函数参数

Posted

技术标签:

【中文标题】整数、长整数或双精度类型作为 Spark UDF 的函数参数【英文标题】:Integer, Long or Double type as function parameter to Spark UDF 【发布时间】:2017-08-24 05:48:53 【问题描述】:

我有一个调用 Scala 函数的简单 spark UDF。 Scala 函数目前使用 'Long' 类型,如下所示

def someUDF(someList: List[String]) = udf  (inMap: Map[String, Long]) =>
    someFunc[Long](inMap, someList)
  

由于 spark 不支持 Any 类型,有没有一种方法可以传递可以用于 Long、Int 或 Double 类型的泛型类型,而无需创建重复的 UDF?

谢谢!

【问题讨论】:

【参考方案1】:

我认为你可以定义双重功能。 Long 和 Int 可以直接转换为 double。

【讨论】:

这会改变非预期值的类型。是否有我可以使用的通用数字类型,或者在 spark 中更好地支持 AnyVal 类型?

以上是关于整数、长整数或双精度类型作为 Spark UDF 的函数参数的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中将字符串列表转换为整数(或双精度)

错误使用 .* 整数只能与同一类的整数或双精度标量组合

将字符串转换为整数或双精度数

可以采用整数或浮点数或双精度数或任何其他可转换为浮点数的 C++ 函数

Spark UDF 类型不匹配错误

浮点数或双精度数的 NaN 和 Infinity 如何存储在内存中?