zoukankan      html  css  js  c++  java
  • spark自定义udf输入类型为array报错

    定义udf如下

    val list2string = udf { (style: Array[String], num: Array[Long]) =>
       style.zip(num).map(t => t._1 + ":" + t._2).mkString("<br>")
    }

    输入为两个数组,输出为string

     

    报错如下

    Caused by: java.lang.ClassCastException: scala.collection.mutable.WrappedArray$ofRef cannot be cast to [Ljava.lang.String;

     

    打印输入字段类型

    root

     |-- user_no: long (nullable = true)

     |-- style_list: array (nullable = true)

     |    |-- element: string (containsNull = true)

     |-- styleNum_list: array (nullable = true)

     |    |-- element: long (containsNull = true)

     

    解决办法

    更改udf输入为seq

    val list2string = udf { (style: Seq[String], num: Seq[Long]) =>
       style.zip(num).map(t => t._1 + ":" + t._2).mkString("<br>")
    }

     

  • 相关阅读:
    视频分解图片,图片合成视频
    获取图片中指定区域图片
    CALayer alpha mask not working
    多媒体编程ios摄像头图像抓取工具类
    10月17日
    10月16日
    10月15日
    10月14日
    10月13日
    10月12日
  • 原文地址:https://www.cnblogs.com/OS-BigData/p/8523607.html
Copyright © 2011-2022 走看看