【发布时间】:2019-07-05 02:33:08
【问题描述】:
我的 pyspark 版本是 2.1.1。我正在尝试加入具有两列 id 和 priority 的两个数据框(左外)。我正在创建这样的数据框:
a = "select 123 as id, 1 as priority"
a_df = spark.sql(a)
b = "select 123 as id, 1 as priority union select 112 as uid, 1 as priority"
b_df = spark.sql(b)
c_df = a_df.join(b_df, (a_df.id==b_df.id), 'left').drop(b_df.priority)
c_df 架构以 DataFrame[uid: int, priority: int, uid: int, priority: int]
drop 函数不会删除列。
但如果我尝试这样做:
c_df = a_df.join(b_df, (a_df.id==b_df.id), 'left').drop(a_df.priority)
然后 a_df 的优先级列被删除。
不知道是不是版本变更问题或者别的什么,但是drop函数会这样表现感觉很奇怪。
我知道解决方法可以是先删除不需要的列,然后再进行连接。但仍然不确定为什么 drop 功能不起作用?
提前致谢。
【问题讨论】:
标签: pyspark apache-spark-sql pyspark-sql