"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())
在笔记本 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())