我遇到了这样的问题:我需要从数据框
中删除列A中唯一值的行在下面的DF1行示例中,应删除0和3
A B C
0 5 100 5
1 1 200 5
2 1 150 4
3 3 500 5
我想到的一个解决方案是:
还有其他想法吗? RDD的解决方案也可以提供帮助,但对DataFrame更好 谢谢!
答案 0 :(得分:2)
更简洁的语法(但遵循相同的方法):
df=sqlContext.createDataFrame([[5,100,5],[1,200,5],[1,150,4],[3,500,5]],['A','B','C'])
df.registerTempTable('df') # Making SQL queries possible
df_t=sqlContext.sql('select A,count(B) from df group by A having count(B)=1') # step 1 to 4 in 1 statement
df2=df.join(df_t,df.A==df_t.A,'leftsemi') # only keep records that have a matching key
有些人提到的是左派' as' left keep'。如果密钥也存在于df_t中,它会保留数据帧1的记录。