import org.apache.spark.sql.functions._
case class oneClass(a : Int , b: String , c :string)
val doSomthing = udf ((t1 : Seq[String], str : String , values : t2 Seq[String])
=> {
val pos = t1.indexOf(str)
if (pos >= 0) oneClass(pos, str,t2(pos))
//if no control of pos possible return -1 ===> indexoutofboundsexception
//if control the udf return Any then when I use it ===> Exception
}
)
如何只在pos时返回case类
如果不应该发生,则抛出异常(火花作业将失败):
val doSomthing = udf ((t1 : Seq[String], str : String , t2 :Seq[String])=> {
val pos = t1.indexOf(str)
if (pos >= 0) oneClass(pos, str,t2(pos)) else {
throw new IllegalArgumentException
}
})
否则,请使用<code>选项:
val doSomthing = udf ((t1 : Seq[String], str : String , t2 :Seq[String])=> {
val pos = t1.indexOf(str)
if (pos >= 0) Some(oneClass(pos, str,t2(pos))) else None
})
在后一种情况下,您的结果将在DataFrame中为null
(无
翻译为null
)
一种模式,如果没有抛出异常,也可以使用它来返回结果:
val doSomthing = udf ((t1 : Seq[String], str : String , t2 :Seq[String])=> {
scala.util.Try{
val pos = t1.indexOf(str)
oneClass(pos, str,t2(pos))
}.toOption
})
这可能是有用的测试但我不认为这是良好的做法
问题内容: 例如,这样简单的事情: 打印110.00000000000001而不是110。使用其他数字代替100 * 1.1还会给出很多数字,并且末尾有一些随机数字,这是不正确的。 有任何想法吗? 问题答案: 浮点符号的准确性有限。这是一个指南:http : //floating-point- gui.de/
问题内容: 以下脚本应返回部门的名称以及这些部门中的雇员人数,市场营销,执行和销售部门的雇员为‘0’,但返回的值为‘1’,而不是‘0’。我该如何纠正? 问题答案: 不要使用数数您想数数的员工。 计算整行。由于在进行计数(*)时,部门中每个部门始终至少会有一个记录,因此您总是会获得至少1条记录 演示
本文向大家介绍sklearn+python:线性回归案例,包括了sklearn+python:线性回归案例的使用技巧和注意事项,需要的朋友参考一下 使用一阶线性方程预测波士顿房价 载入的数据是随sklearn一起发布的,来自boston 1993年之前收集的506个房屋的数据和价格。load_boston()用于载入数据。 输出内容为: 可以看到测试集上准确率并不高,应该是欠拟合。 使用多项式做线
我的接口定义为: 然而,这还不够明确,因为我不知道返回的是什么字段。我想要像这样的东西: 但是这会引发NameError,因为还没有定义结果类。是否有任何方法可以指定函数的返回类型(以便内部成员可以通过点运算符访问),而无需为每个函数显式创建结果类? EDIT我没有在他们自己的模块中进行定义,因为我认为会有太多名字尴尬冗长的模块。定义一个内部类会更好,因为它不会每次都强制创建一个新的类名,而且,因
问题内容: 我正在尝试进行此扩展: 但是我得到了编译错误: 错误:无法将类型’UIViewController’的返回表达式转换为类型’Self’ 可能吗?我也想做到 问题答案: 与在Swift的类扩展函数中使用’self’类似,您可以定义一个通用的辅助方法,该方法可以从调用上下文中推断出self的类型: 然后 进行编译,并将类型推断为。 Swift 3 更新 : 另一种可能的解决方案,使用:
本文向大家介绍PowerShell函数一次返回多个返回值示例,包括了PowerShell函数一次返回多个返回值示例的使用技巧和注意事项,需要的朋友参考一下 本文介绍在自定义PowerShell函数时,如何让函数返回值,如何接收返回值,如何让不相干的内容不放到返回值数组中。 PowerShell函数体中的任何输出,一般来说,都会以返回值的形式返回给函数调用者。多个输出的内容是放到一个返回值数组中的。