最佳答案
正如在 Web 上的 很多 其他地点中所提到的,向现有 DataFrame 添加新列并不简单。不幸的是,拥有这种功能非常重要(即使在分布式环境中效率很低) ,特别是在尝试使用 unionAll
连接两个 DataFrame
时。
在 DataFrame
中添加 null
列以促进 unionAll
,最优雅的解决方案是什么?
我的版本是这样的:
from pyspark.sql.types import StringType
from pyspark.sql.functions import UserDefinedFunction
to_none = UserDefinedFunction(lambda x: None, StringType())
new_df = old_df.withColumn('new_column', to_none(df_old['any_col_from_old']))