根据列中的值复制Spark数据帧中的行-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

根据列中的值复制Spark数据帧中的行

2018-12-06 15:15:49 2713 1

我想根据给定列的值复制行。例如,我得到了这个DataFrame:

count
3
1
4

我想得到:

count
3
3
3
1
4
4
4
4

withColum根据这个答案我尝试使用方法。

val replicateDf = originalDf

.withColumn("replicating", explode(array((1 until $"count").map(lit): _*)))
.select("count")

但是$"count"是一个ColumnName并且不能用于在上面的表达式中表示它的值。

(我也尝试了explode(Array.fill($"count"){1})同样的问题。)有更简洁的方法吗?

取消 提交回答
全部回答(1)
  • 社区小助手
    2019-07-17 23:18:33

    array_repeat从2.4开始提供。如果您需要较低版本的解决方案,可以使用udf()或rdd。对于Rdd,请检查一下

    import scala.collection.mutable._

    val df = Seq(3,1,4).toDF("count")
    val rdd1 = df.rdd.flatMap( x=> { val y = x.getAsInt; for ( p <- 0 until y ) yield Row(y) } )
    spark.createDataFrame(rdd1,df.schema).show(false)
    结果:

    count
    3
    3
    3
    1
    4
    4
    4
    4

    对于udf(),下面会有效

    val df = Seq(3,1,4).toDF("count")
    def array_repeat(x:Int):Array[Int]={
    val y = for ( p <- 0 until x )yield x
    y.toArray
    }
    val udf_array_repeat = udf (array_repeat(_:Int):Array[Int] )
    df.withColumn("count2", explode(udf_array_repeat('count))).select("count2").show(false)

    0 0
相关问答

1

回答

Spark Streaming 原理是什么?

2022-01-13 15:54:26 1121浏览量 回答数 1

1

回答

Flink 相比传统的 Spark Streaming 有怎样的区别?

2021-12-08 17:05:05 344浏览量 回答数 1

1

回答

Flink 相比传统的 Spark Streaming 有些什么区别?

2021-12-08 17:54:39 371浏览量 回答数 1

1

回答

Spark Streaming中的DStream的输出操作是什么?

2021-12-07 20:17:49 138浏览量 回答数 1

1

回答

Spark Streaming中的DStream的转化操作是什么?

2021-12-07 20:17:05 113浏览量 回答数 1

1

回答

spark streaming中的foreachRDD(func)方法是什么?

2021-12-07 08:05:05 293浏览量 回答数 1

1

回答

spark streaming是怎么收集和处理数据的?

2021-12-07 22:52:45 116浏览量 回答数 1

1

回答

如何使用Spark Streaming SQL进行 PV/UV统计?

2020-12-28 11:38:30 488浏览量 回答数 1

1

回答

使用Spark Streaming SQL进行 PV/UV统计的准备工作?

2020-12-28 11:39:00 420浏览量 回答数 1

1

回答

spark streaming实时程序 进程总是运行三四个小时左右不知道原因挂掉

2019-12-20 21:25:15 881浏览量 回答数 1
+关注
社区小助手
社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。
12
文章
824
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载