【发布时间】:2021-09-09 14:24:07
【问题描述】:
我有一个 PySpark 数据框 df 并想添加一个“迭代后缀”。对于每次迭代,counter 应增加 1 并作为后缀添加到数据帧名称。出于测试目的,我的代码如下所示:
counter = 1
def loop:
counter = counter + 1
df_%s = df.select('A','B') % counter
这里有2个问题:我不知道如何设置计数器变量,因为这个版本遇到错误('局部变量'counter'在赋值之前引用')并且我不知道如何正确传递当前数据框名称的计数器值。感谢您的帮助!
【问题讨论】:
-
存储这样的信息有什么必要?看起来需要对您的数据框进行历史记录,我建议您使用一个专用数据框和一个允许识别值的列,可能是日期
-
是的,我需要在 12 个月内循环执行相同的操作。虽然这可能不是 PySpark 中最好的程序,但我真的很想知道如何做到这一点,因为我来自 SAS,需要将一些 SAS 脚本转换为 Python (PySpark)。
-
我了解,但我不知道是否存在这种语法最好的情况。不幸的是,我不知道如何进行,也不知道是否可行