如何根据 spark 中的列值生成行?
How do I Generate rows depending upon the column value in spark?
假设如果我有一行单列
+---+
| 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 |
+---+
假设如果我有一行单列
+---+
| 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 |
+---+