apache-spark - 连接后如何重命名重复的列?

标签 apache-spark pyspark apache-spark-sql

我想对 3 个数据帧使用 join,但有些列我们不需要,或者与其他数据帧有一些重复的名称,所以我想删除一些列,如下所示:

result_df = (aa_df.join(bb_df, 'id', 'left')
  .join(cc_df, 'id', 'left')
  .withColumnRenamed(bb_df.status, 'user_status'))

请注意status列位于两个数据框中,即 aa_dfbb_df .

上面的方法不起作用。我还尝试使用withColumn ,但是新列已创建,旧列仍然存在。

最佳答案

如果您尝试重命名 bb_df 数据帧的 status 列,那么您可以在加入时执行此操作

result_df = aa_df.join(bb_df.withColumnRenamed('status', 'user_status'),'id', 'left').join(cc_df, 'id', 'left')

关于apache-spark - 连接后如何重命名重复的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50287558/

相关文章:

apache-spark - Spark任务在计算之前是否读取了整个HDFS block ?

scala - 在Spark中舍入为Double

python - PySpark:TypeError: 'Row' 对象不支持项目分配

apache-spark - 将数据帧写入kafka pyspark

python - 如何查找 pyspark 数据帧内存使用情况?

apache-spark - 从 RDD 创建 df 时出现 pyspark 错误 : TypeError: Can not infer schema for type: <type 'float' >

apache-spark - 缓存 RDD 上的 EOFError

memory - 如何从 iPython 接口(interface)中找出 pyspark 的内存量?

hadoop - 重新启动 spark 后,使用 sqlContext.createExternalTable 创建的表不可见

scala - 如何将函数应用于 Spark DataFrame 的列?