如何在向量中转换此DataFrame?

时间:2018-05-14 10:32:13

标签: scala apache-spark

您好我是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      .... .....                   ... 

我需要帮助。谢天谢地。

1 个答案:

答案 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))
)