消除列子集中的数据帧重复

时间:2018-04-02 09:24:36

标签: apache-spark pyspark apache-spark-sql

我在Spark中有两个数据框,它们有很多列和一个时间戳列。我想消除除时间戳列以外的所有列的重复项。所以我的最终数据框应该是一个数据框,在两个数据框中都有唯一的值。

columns_of_interest = [ x for x in dfA.columns if ( x != 'timestamp') ] 

#Take the union of the two dataframes as set do not contation duplicates
df_No_duplicates = dfA.select([c for c in columns_of_interest]).union(dfB.select( [c for c  in columns_of_interest]))

我对此代码的问题是最后一个数据帧应该具有最低时间戳值的列时间戳。我有一个像

这样的数据农场
dfA= -> Col1A ColB Timestamp
         1     2    "2/4/2018 11:00:00"

dfB  -> Col1A ColB Timestamp
         1     2    "2/4/2018 12:00:00"

然后决赛应该是

dfFinal= -> Col1A ColB Timestamp
            1     2    "2/4/2018 11:00:00"

我试图保留记录的id和时间戳值以及连接,但这会导致错误的结果,因为每个id有多个时间戳值,并且无法过滤正确的值

0 个答案:

没有答案