我想在 DataFrame 中复制一行,我该怎么做?
例如,我有一个由 1 行组成的 DataFrame,我想制作一个具有 100 个相同行的 DataFrame。我想出了以下解决方案:
var data:DataFrame=singleRowDF
for(i<-1 to 100-1) {
data = data.unionAll(singleRowDF)
}
但这引入了许多转换,并且我的后续操作似乎变得非常缓慢。还有另一种方法吗?
最佳答案
您可以添加一个字面值为大小为 100 的 Array 的列,然后使用 explode
使其每个元素创建自己的行;然后,去掉这个“虚拟”列:
import org.apache.spark.sql.functions._
val result = singleRowDF
.withColumn("dummy", explode(array((1 until 100).map(lit): _*)))
.selectExpr(singleRowDF.columns: _*)
关于scala - 复制 Spark Row N 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40397740/