Пожалуйста, не обновляйте вопрос, как только он будет принят как ответ, потому что может показаться, что ответ не является адекватным для вопроса. Вы всегда можете задать другой вопрос. А пока я обновил ответ. но, пожалуйста, не делай этого в будущем @ user9367133

я есть фрейм данных вpyspark как ниже.

df.show()

+---+-------+----+
| id|   type|s_id|
+---+-------+----+
|  1|    ios|  11|
|  1|    ios|  12|
|  1|    ios|  13|
|  1|    ios|  14|
|  1|android|  15|
|  1|android|  16|
|  1|android|  17|
|  2|    ios|  21|
|  2|android|  18|
+---+-------+----+

Теперь из этого фрейма данных я хочу создать другой фрейм данных, поворачивая его.

df1.show()
+---+-----+-----+-----+---------+---------+---------+
| id| ios1| ios2| ios3| android1| android2| android3|
+---+-----+-----+-----+---------+---------+---------+
|  1|   11|   12|   13|       15|       16|       17|
|  2|   21| Null| Null|       18|     Null|     Null|
+---+-----+-----+-----+---------+---------+---------+

Здесь нужно учитывать условие, что для каждогоId хотя будет больше, чем3 types Я хочу рассмотреть только3 or less than 3.

Как я могу это сделать?

редактировать

new_df.show()

+---+-------+----+
| id|   type|s_id|
+---+-------+----+
|  1|    ios|  11|
|  1|    ios|  12|
|  1|       |  13|
|  1|       |  14|
|  1|andriod|  15|
|  1|       |  16|
|  1|       |  17|
|  2|andriod|  18|
|  2|    ios|  21|
+---+-------+----+

Результат, который я получаю, ниже

+---+----+----+----+--------+----+----+
| id|   1|   2|   3|andriod1|ios1|ios2|
+---+----+----+----+--------+----+----+
|  1|  13|  14|  16|      15|  11|  12|
|  2|null|null|null|      18|  21|null|
+---+----+----+----+--------+----+----+

Что я хочу это

+---+--------+--------+--------+----+----+----+
|id |android1|android2|android3|ios1|ios2|ios3|
+---+--------+--------+--------+----+----+----+
|1  |15      |    null|    null|  11|  12|null|
|2  |18      |    null|    null|  21|null|null|
+---+--------+--------+--------+----+----+----+

Ответы на вопрос(1)

Ваш ответ на вопрос