scala - WrappedArray$ofRef 不能转换为 scala.collection.immutable.Seq
问题描述
我正在尝试将一些 Python 代码转换为 Scala。
Python代码:
def col_c(o_row_ids,n_row_ids):
o_set=set(o_row_ids)
n_set=set(n_row_ids)
if o_set=n_set
return "in"
elif o_set < n_set:
return "Me"
elif n_set < o_set:
return "Sp"
return "SM"
斯卡拉代码:
def col_c: UserDefinedFunction = udf((o_row_ids:Seq[String], n_row_ids: Seq[String]) => {
val o_set = o_row_ids.toSet.count(z => true) //set(o_row_ids)
val n_set = n_row_ids.toSet.count(z=> true)
if (o_set == n_set)
"In"
else if( o_set < n_set)
"Me"
else if (n_set < o_set)
"Sp"
else "SM"
})
但我收到以下错误:
无法执行用户定义的函数(col_c(数组(字符串),数组(字符串)=>字符串 scala.collection.mutable.wrappedArray$ofRef 无法转换为 scala .collection.immutable.Seq
任何建议如何防止此错误?
解决方案
WrappedArray
extendsscala.collection.mutable.Seq
本身扩展scala.collection.Seq
。
看起来你已经导入scala.collection.immutable.Seq
了,因此出现了错误。
解决您的问题的一种可能性是将您的 UDF 输入为scala.collection.Seq
.
推荐阅读
- html - 在 laravel 刀片上播放视频
- c# - 时间范围查询的 Google Drive Api File.LIst 问题
- ubuntu - grep 多个字符串并输出到多个文件
- jquery - WPBakery 使用图片库切换拉伸行和行
- c - Get the address space of a dynamic loaded library
- macos - 查找启动 OS X 应用程序的文件名
- javascript - 如何使更改标签 JS 适应标签更改时的过渡高度?
- reference - In what scenarios are APIs that don't borrow preferred?
- javascript - 如何在 Angular 7 中使用 wavesurfer.js 读取 AVI 文件
- tensorflow - Keras 中的卷积层可视化