Rap*_*oth 6 scala apache-spark
我想在DataFrame中复制一行,我该怎么做?
例如,我有一个由1行组成的DataFrame,我想创建一个具有100个相同行的DataFrame.我提出了以下解决方案:
var data:DataFrame=singleRowDF
for(i<-1 to 100-1) {
data = data.unionAll(singleRowDF)
}
Run Code Online (Sandbox Code Playgroud)
但这引入了许多转换,似乎我的后续行动变得非常缓慢.还有另一种方法吗?
Tza*_*har 17
您可以添加一个文字值为大小为100的数组的列,然后使用它explode来使每个元素创建自己的行; 然后,摆脱这个"虚拟"列:
import org.apache.spark.sql.functions._
val result = singleRowDF
.withColumn("dummy", explode(array((1 until 100).map(lit): _*)))
.selectExpr(singleRowDF.columns: _*)
Run Code Online (Sandbox Code Playgroud)