【发布时间】:2016-09-02 18:40:39
【问题描述】:
我正在尝试对 Scala 中的 Spark 数据框的一列应用函数。该列是字符串类型,我想将字符串中的每个标记与“_”分隔符连接起来(例如“A B”->“A_B”)。我正在这样做:
val converter: (String => String) = (arg: String) => {arg.split(" ").mkString("_")}
val myUDF = udf(converter)
val newDF = oldDF
.withColumn("TEST", myUDF(oldDF("colA.B")) )
display(newDF)
这适用于数据框中名称不带点(“.”)的列。但是,列名“colA.B”中的点似乎在破坏代码并引发错误:
org.apache.spark.sql.AnalysisException: Cannot resolve column name "colA.B" among (colA.B, col1, col2);
我想解决方法是重命名该列(类似于this),但我不想这样做。
【问题讨论】:
标签: scala apache-spark spark-dataframe