У меня есть pyspark dataframe (df) с n cols, я хотел бы создать еще одну df из n cols, где каждый столбец записывает процентную разницу ч / б последовательных строк в соответствующем оригинальном столбце df.И заголовки столбцов в новом df должны быть == заголовок соответствующего столбца в старом dataframe + "_diff".С помощью следующего кода я могу сгенерировать новые столбцы процентных изменений для каждого столбца в исходном df, но не могу вставить их в новый df с подходящими заголовками столбцов:
from pyspark.sql import SparkSession
from pyspark.sql.window import Window
import pyspark.sql.functions as func
spark = (SparkSession
.builder
.appName('pct_change')
.enableHiveSupport()
.getOrCreate())
df = spark.createDataFrame([(1, 10, 11, 12), (2, 20, 22, 24), (3, 30, 33, 36)],
["index", "col1", "col2", "col3"])
w = Window.orderBy("index")
for i in range(1, len(df.columns)):
col_pctChange = func.log(df[df.columns[i]]) - func.log(func.lag(df[df.columns[i]]).over(w))
Спасибо