当前位置: 首页 > 知识库问答 >
问题:

如何删除pyspark dataframe中的列

訾朗
2023-03-14
>>> a
DataFrame[id: bigint, julian_date: string, user_id: bigint]
>>> b
DataFrame[id: bigint, quan_created_money: decimal(10,0), quan_created_cnt: bigint]
>>> a.join(b, a.id==b.id, 'outer')
DataFrame[id: bigint, julian_date: string, user_id: bigint, id: bigint, quan_created_money: decimal(10,0), quan_created_cnt: bigint]

有两个id:bigint,我想删除一个。我该怎么办?

共有3个答案

汪飞捷
2023-03-14

一个简单的方法是用户“选择”,并意识到您可以通过df获得数据帧df的所有列的列表。列

drop_list = ['a column', 'another column', ...]

df.select([column for column in df.columns if column not in drop_list])

东方森
2023-03-14

添加到@Patrick的答案中,您可以使用以下内容删除多个列

columns_to_drop = ['id', 'id_copy']
df = df.drop(*columns_to_drop)
柳培
2023-03-14

阅读火花留档我找到了一个更简单的解决方案。

自spark版本1.4以来,有一个函数drop(col),可用于pyspark中的数据帧。

你可以通过两种方式使用它

  1. df.drop('age')
  2. df.drop(df.age)

Pyspark文档-删除

 类似资料:
  • 如何删除Google Firebase中的值? 我想删除Google Firebase中的值,但我不知道如何使用此代码。 我尝试了以下方法,但没有成功:

  • 给定使用以下方式创建的表: 如何删除列?

  • 问题内容: 我已经能够使用该站点上多个用户的输入来使用python创建一个csv,并希望对您的帖子表示感谢。我现在很困惑,将发表我的第一个问题。 我的input.csv看起来像这样: 我正在尝试删除“年份”列及其所有条目。从1960年到2010年,总共有40多个条目。 问题答案: 顺便说一句,循环可以删除,但并没有真正简化。 同样,您可以以直截了当的方式坚持删除列的要求。我发现这通常是一个不好的策

  • 问题内容: 我能够从中删除标题栏,但我不知道如何删除边框。 问题答案: 要删除边框,只需致电 根本没有显示任何边框。

  • 问题内容: 我该如何删除matplotlib轴的一条线(或多条线),使其实际上收集到垃圾并释放回内存?以下代码似乎删除了该行,但是从不释放内存(即使显式调用) 问题答案: 我正在展示 和结合使用的技巧。 我检查了您的大型数据集,并在系统监视器上也确认了内存的释放。 当然,更简单的方法(当不进行故障排除时)是从列表中弹出它并在不创建硬引用的情况下调用该行对象:

  • 我想按条件从Tarantool空间删除数据。我想达到的结果等于SQL查询: 当我使用此查询时,它以错误结束: 我有空