У меня есть датафрейм, который состоит из 4 строк и более 20 столбцов (дат).Фрейм данных - это таблица, которую я читаю и преобразую в фрейм данных.Строка SUM содержит сумму значений на дату.
+----+-----+-----+
|PR |date1|date2|......
+----+-----+-----+
| a | 30 | 17 |......
| b | 30 | 12 |......
| SUM| 60 | 29 |......
+----+---+-------+
Я создал этот фрейм данных после отправки вопроса здесь.Поскольку таблица постоянно заполняется новыми данными, я хочу, чтобы новые данные были добавлены к этому фрейму данных.
Я кодирую в pySpark, и скрипт выглядит следующим образом:
from pyspark.sql import functions as F
if df.filter(df.PR.like('SUM')):
print("**********")
print("SUM FOUND")
df = df.union(df.select(df.where(df.index == 'SUM').select('PR'), *[F.sum(F.col(c)).alias(c) for c in df.columns if c != 'PR']))
else:
df = df.union(df.select(F.lit("SUM").alias("PR"), *[F.sum(F.col(c)).alias(c) for c in df.columns if c != 'PR']))
Что я хочудля достижения этой цели, для любой новой даты создайте новый столбец и заполните сумму, не добавляя новые строки.К сожалению, я получаю ошибку AttributeError: 'DataFrame' object has no attribute 'index'
Любая помощь / подсказка?Должен ли я придерживаться другого подхода?