假设我有一行有一行
+---+
| id|
+---+
| 4|
+---+
那么我如何根据列的值生成行
+---+
| id|
+---+
| 1 |
|---|
| 2 |
|---|
| 3 |
|---|
| 4 |
+---+
您可以为其定义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 |
+---+