在 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 中选择和排序多个列