Pyspark сгруппирован по индексу и объединяет столбцы списка в один столбец списка списков

#python #pyspark

#python #pyspark

Вопрос:

Для данного фрейма данных pyspark, каков наилучший способ объединить столбцы, содержимое которых является списками, и создать новый столбец, содержимое которого является списком списков?

пример ввода:

 id_1|id_2|id_3|        timestamp     |thing1       |thing2       |thing3
A   |b  |  c |[time_0,time_1,time_2]|[1.2,1.1,2.2]|[1.3,1.5,2.6]|[2.5,3.4,2.9]
A   |b  |  d |[time_0,time_1]       |[5.1,6.1]    |[5.5,6.2]   |[5.7,6.3]
A   |b  |  e |[time_0,time_1]       |[0.1,0.2]    |[0.5,0.3]   |[0.9,0.6]
  

пример вывода:

 id_1|id_2|id_3|        timestamp     |agg_things       
A   |b  |  c |[time_0,time_1,time_2]|[[1.2,1.1,2.2],[1.3,1.5,2.6],[2.5,3.4,2.9]]
A   |b  |  d |[time_0,time_1]       |[[5.1,6.1],[5.5,6.2],[5.7,6.3]]
A   |b  |  e |[time_0,time_1]       |[[0.1,0.2],[0.5,0.3],[0.9,0.6]]
  

Ответ №1:

Я придумал простой код для этого:

 example_df.withColumn('agg_things', array(col("thing1"), col("thing2"), col("thing3")))