您好我是Stack OverFlow的新手,这是我的第一个问题。
我在scala工作,我有这个:
scala> val result = sql("Select col.pid, explode(col.tracks.track_uri) as track_uri From table")
scala> result.show(5)
+---+--------------------+
|pid| track_uri|
+---+--------------------+
| 0| 0Uaiui7t32423WM5|
| 0| 6I97G45hbhJGkjhg|
| 0| 0Wqfhbf6fhbHJG34|
| 0| 1AW77b76KJVG7h6r|
| 0| 1lzkjd7HG8hjkjh9|
......
|45986| k7sjHG8789jvgk|
+---+--------------------+
我想将其转换为这种方式:
pid track1 track2 ..... trackN
0 0Uaiui7t32423WM5 6I97G45hbhJGkjhg . . . 1lzkjd7HG8hjkjh9
1 .
2 .
n k7sjHG8789jvgk .... ..... ...
我需要帮助。谢天谢地。
答案 0 :(得分:0)
不要explode
import org.apache.spark.sql.functions._
(0 until N).foldLeft(spark.table("table"))((df, i) =>
df.withColumn(s"track$i", col("col.tracks.track_uri").getItem(i))
)