"Column is not iterable" 从另一个导入的笔记本调用函数时出错

"Column is not iterable" error while calling a function from another imported notebook

在笔记本 1 中

from pyspark.sql.functions import current_timestamp
def add_ingest_date(input_df):
output_df = input_df.withColumnRenamed("somecolumn", 
current_timestamp())
return output_df

在笔记本 2 中

%run "../common_functions/add_ingested_date"
final_df = add_ingest_date(input_df)

我收到“列不可迭代”错误

您正在尝试将名称为 'somecolumn' 的列的名称更改为 current_timestamp()。这是不对的。如果你想改变列名,你需要给一个字符串而不是一个函数。例如:

output_df = input_df.withColumnRenamed("somecolumn", "newColumnName")

如果您想添加一个显示当前时间戳的新列,那么您需要指定您要向数据框添加一个新列

output_df = input_df.withColumn("somecolumn", current_timestamp())