当我使用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"))
问题有点陈旧,希望这对别人有帮助。干杯