从spark数据框中的列生成不同的值

时间:2017-01-05 12:12:10

标签: scala apache-spark spark-dataframe scala-collections

我有一个像下面的火花数据框

id|name|age|sub
1 |ravi|21 |[M,J,J,K]

我不想在列“sub”上爆炸,因为它会创建另一组额外的行。我想从“sub”列生成唯一值并将其分配给新列sub_unique。

我的输出应该像

id|name|age|sub_unique
1 |ravi|21 |[M,J,K]

1 个答案:

答案 0 :(得分:0)

您可以使用udf

val distinct = udf((x: Seq[String]) => if (s != null) x.distinct else Seq[String]())

df.withColumn("subm_unique", distinct($"sub"))