Python exec() 没有创建 PySpark 数据框

Python exec() is not creating PySpark Dataframe

我正在尝试在 spark 数据框上创建一个附加列。 新列由串联的列列表 (col_list) 组成。在我实际执行 exec() 行之前,一切正常。未创建数据框 'tb'。

我正在使用 exec() 因为 'col_list' 列表是动态生成的。

不确定为什么 exec() 无法创建新数据帧 'tb':

代码如下:

exec("tb = table_df.withColumn('TestPrimaryKey',{0})".format(col_list))

如果您想在 exec 函数中获取值,一种方法是使用列表并附加结果:

exec_return = []
exec("exec_return.append('value')")
value = exec_return[0]

在这种情况下,要获取 tb 值,您可以这样做:

exec_return = []
exec("exec_return.append(table_df.withColumn('TestPrimaryKey',{0}))".format(col_list))
tb = exec_return[0]