在 PySpark DataFrame 中添加多个空列

Posted

技术标签:

【中文标题】在 PySpark DataFrame 中添加多个空列【英文标题】:Adding Multiple Empty Columns in PySpark DataFrame 【发布时间】:2018-09-14 00:13:18 【问题描述】:

谁能建议我如何在 pyspark 数据框中添加多个空列。目前我正在做这样的事情,但它不起作用:

def add_columns(dataframe, column_list):
    for col in column_list:
        self = dataframe.withColumn(str(col), lit(None).cast(StringType())))
    return dataframe

在应用 add_columns 函数后的输出模式中,我在 0x7f41189d7e10: string (nullable = true) 处获得了新列作为生成器对象geneexpr:字符串(nullable = true)

【问题讨论】:

尝试用lit('')替换lit(None) 什么是 column_list?有什么价值观? str(col) 你在这里期待什么?也许它应该是 col.name 。 【参考方案1】:

你的代码 sn-p 对我有用,只需在里面做这个小改动:

def add_columns(dataframe, column_list):
    self = dataframe.withColumn(str(column_list[0]), f.lit(None).cast(StringType()))
    for col in column_list[1:]:
        self = self.withColumn(str(col), f.lit(None).cast(StringType()))
    return self

我返回“self”而不是“dataframe”,以便在每次运行函数时不向数据帧添加多列。

【讨论】:

以上是关于在 PySpark DataFrame 中添加多个空列的主要内容,如果未能解决你的问题,请参考以下文章

连接后如何在 Pyspark Dataframe 中选择和排序多个列

在 PySpark DataFrame 中添加汇总输出作为新行

在 pyspark.ml 中运行多个功能的变压器

pySpark Dataframe 上聚合的多个标准

在 Pyspark 中合并 DataFrame

pyspark dataframe数据连接(join)转化为pandas dataframe基于多个字段删除冗余数据