【发布时间】:2019-02-11 17:46:30
【问题描述】:
我编写了以下函数,它连接两个字符串并将它们添加到数据框的新列中:
def idCol(firstCol: String, secondCol: String, IdCol: String = FUNCTIONAL_ID): DataFrame = {
df.withColumn(IdCol,concat(col(firstCol),lit("."),col(secondCol))).dropDuplicates(IdCol)
}
我的目标是用一个字符串数组替换不同字符串的使用,然后从数组的这些不同元素的串联中定义新列。我使用数组是为了有一个可变的数据集合,以防要连接的元素数量发生变化。 你对如何做到这一点有任何想法吗 所以函数将被更改为:
def idCol(cols:Array[String], IdCol: String = FUNCTIONAL_ID): DataFrame = {
df.withColumn(IdCol,concat(col(cols(0)),lit("."),col(cols(1))).dropDuplicates(IdCol)
}
我想绕过 cols(0)、cols(1) 并进行通用转换,该转换采用数组的所有元素并用字符“。”分隔它们
【问题讨论】:
标签: arrays scala apache-spark dictionary