В pyspark, как использовать цикл с функцией withcolumn для добавления переменного числа столбцов в фрейм данных? - PullRequest
0 голосов
/ 28 марта 2019

В pyspark, используя функцию withColumn, я хотел бы добавить к фрейму данных фиксированный столбец плюс переменное количество столбцов, в зависимости от размера списка.Я попытался сделать это, создав цикл перед функцией withColumn.Это решение не дает ожидаемого результата, так как только последний столбец в цикле добавляется к кадру данных (сделан постоянным).Я понимаю, что добавление цикла до того, как функция Window выдаст ожидаемые результаты, однако выполнение функции Window многократно убило бы мой процесс - с точки зрения производительности - поскольку мой набор данных содержит миллионы записей, а список содержит большое количество элементов.

...
products = ['a','b','c']
w1 = Window.orderBy("ID").partitionBy("ID")
data = data.withColumn(
        "ID_changed_column",
        (f.col("ID") != f.lead("ID").over(w1)).cast("int")
        )
for product in products:
      data = data.withColumn(
        product,
        ("boo")
        )
...

В этом примере мне нужно добавить к фрейму данных «данные» 4 столбца: «ID_changed_column», «a», «b» и «c».С помощью приведенного выше кода я получаю только столбец 'c' (последний в цикле).Есть ли решение, использующее функцию Window только один раз?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...