【问题标题】:How do I Generate rows depending upon the column value in spark?如何根据 spark 中的列值生成行?
【发布时间】:2018-05-10 04:38:10
【问题描述】:

假设如果我有一行一行的单列

+---+
| id|
+---+
|  4|
+---+

那么我如何根据列的值生成行

+---+
| id|
+---+
| 1 |
|---|
| 2 |
|---|
| 3 |
|---|
| 4 |
+---+

【问题讨论】:

    标签: apache-spark rows using generate


    【解决方案1】:

    您可以为该定义一个udf 函数以生成范围,然后使用explode 函数使它们分隔行

    import org.apache.spark.sql.functions._
    def generateUdf = udf((column: Int)=> (1 to column).toArray)
    
    df.withColumn("id", explode(generateUdf(col("id")))).show(false)
    

    这应该给你

    +---+
    |id |
    +---+
    |1  |
    |2  |
    |3  |
    |4  |
    +---+
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-15
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多