输入数据框
val ds = Seq((1,"play Framwork"),
(2,"Spark framework"),
(3,"spring framework")).toDF("id","subject")
假设我的prefix
值为前缀,而suffix
的值为后缀。然后,我期待以下 DataFrame
期望的数据帧
val ds = Seq((1,"play Framwork",prefixplay Frameworksuffix),
(2,"Spark framework",prefixSpark frameworksuffix),
(3,"spring framework"),prefixspring frameworksuffix).toDF("id","subject",prefixsubjectsuffix)
因此,正如您所看到的,我希望创建一个新的名称为prefix+columnName+suffix
的 prefixsubjectsuffix 后的colunm。另外,该列的values
应该按照我的预期进行转换。
我正在尝试使用一些udf
来实现此目标,如下所示
import org.apache.spark.sql.functions.udf
val concatPrefixSuffixWithColumnValues=
udf((column:String,prefix:String,suffix:String)=>
prefix.concat(column).concat(suffix))
但是当我通过以下语句使用它时,会出现一些编译错误
dataset.withColumn(s"$prefixsubject$suffix",concatPrefixSuffixWithColumnValues("subject",prefix,suffix))
那么我该如何实现呢?任何参考??