如何使用Scala在Spark DataFrame中为列添加前缀和后缀值

时间:2018-07-19 07:17:46

标签: scala apache-spark dataframe user-defined-functions

输入数据框

    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))

那么我该如何实现呢?任何参考??

0 个答案:

没有答案
相关问题