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

从数据帧spark中删除列

朱皓
2023-03-14

我有一个包含大量列的Spark数据框架。我想从中删除两列以获得新的数据帧。

如果列更少,我可以在API中使用select方法,如下所示:

pcomments = pcomments.select(pcomments.col("post_id"),pcomments.col("comment_id"),pcomments.col("comment_message"),pcomments.col("user_name"),pcomments.col("comment_createdtime"));

但是既然从长列表中挑选列是一项乏味的任务,有解决方法吗?

共有2个答案

祁宝
2023-03-14

尝试以下操作:

val initialDf = ...

val dfAfterDropCols = initialDf.drop("column1", "coumn2")
阳枫涟
2023-03-14

使用drop方法和withColumnRenamed方法。

示例:

    val initialDf= ....

    val dfAfterDrop=initialDf.drop("column1").drop("coumn2")

    val dfAfterColRename= dfAfterDrop.withColumnRenamed("oldColumnName","new ColumnName")
 类似资料:
  • 假设我有一个相当大的数据集,其形式如下: 我想做的是只根据第一、第三和第四列的值删除重复的行。 在Python中,这可以通过使用指定列来实现。如何在Spark/PySpark中实现相同的功能?

  • 我有两个火花DF,我需要加入。只选择df1中存在的df2中的值,不应该有重复的行。 例如: df1: df2: 我正在做以下工作: 但是我的输出有几个重复的行。 如果val从df1中删除,我试图实现一个类似except的操作。但是除了之外,

  • 我使用Pandas read_csv从csv文件导入了一个数据帧。它的形状是735,36。我需要删除最后33列-保留前3列。这些列是,, 我已经尝试了这里所有的建议 无论我做什么,我都会得到以下错误: 例如: 我又开始了。“bool对象不可下标”错误已经消失,我认为df已经被覆盖。 我试图使用一些公开的医院活动数据,并从中提取数据。我是一名神经外科医生,所以你可能需要耐心。数据在这里https:/

  • 目前,我创建了单独的,最后连接这些,以创建一个。 是否有优雅的或一个衬里来从数组列表和多个数组中创建df。

  • 我有一个数据框架,我连接到它的所有字段。 连接后它成为另一个数据帧,最后我将其输出写入csv文件,并在其两列上进行分区。它的一列存在于第一个数据帧中,我不想包含在最终输出中。 这是我的代码: 在这里,我连接并创建另一个数据帧: 这就是我尝试过的 现在我不希望在我的输出中的数据分区列。 我正在基于DataPartition进行分区,所以我没有得到,但因为DataPartition存在于主数据帧中,所

  • 从Spark中删除分区的替代方案是什么?有另一个实现来做到这一点? 谢了。