我有一个包含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']))
我想要实现的是,对于任何新日期,请创建一个新列并填写SUM,而无需添加新行。不幸的是,我遇到了错误AttributeError: 'DataFrame' object has no attribute 'index'
有帮助/提示吗?我应该采用其他方法吗?