问题 spark udf函数不能序列化
如下在实现spark的udf函数时: val randomNew = ( arra : Seq [ String ] , n : Int ) = > { if ( arra . size < n ) { return arra . toSeq } var arr = ArrayBuffer [ String ] ( ) arr ++ = arra var outList : List [ String ] = Nil var border = arr . length //随机数范围 for ( i < - 0 to n - 1 ) { //生成n个数 val index = ( new Random ) . nextInt ( border ) outList = outList : : : List ( arr ( index ) ) arr ( index ) = arr . last //将最后一个元素换到刚取走的位置 arr = arr . dropRight ( 1 ) //去除最后一个元素 border -= 1 } outList . toSeq } sqlContext . udf . register ( "randomNew" , randomNew ) 执行出现如下错误: Caused by: org.apache.spark.SparkException: