当我使用udf通过分隔符将一列中的字符串拆分时,我总是收到错误消息。我正在使用Scala

Error: java.lang.ClassCastException: $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$anonfun$1 cannot be cast to scala.Function2


不知道这是什么以及如何解决它。

这是我的udf和数据框:

val rsplit = udf((refsplit: String) => refsplit.split(":"))


+---------+--------------------+--------------------+
|     user|              jsites|             jsites1|
+---------+--------------------+--------------------+
|123ashish|m.mangahere.co:m....|m.mangahere.co:m....|
|456ashish|m.mangahere2.co:m...|m.mangahere2.co:m...|
|   ashish|m.mangahere.co:m....|m.mangahere.co:m....|
+---------+--------------------+--------------------+


jsites列看起来像m.manghere.co:m.facebook.com:.msn.com。我正在尝试使用udf将m.manghere.co:m.facebook.com:.msn.com除以:

我不断收到这个错误

最佳答案

org.apache.spark.sql.functions中提供了一个拆分功能

import org.apache.spark.sql.functions.{col,split}

val df = ???
df.withColumn("split sites",split(col("COLNAME"), "REGEX"))


问题有点陈旧,希望这对别人有帮助。干杯

08-17 11:50