2016-06-29 58 views
0

有兩個DataFrames。一個df1包含事件,其中一列是ID。 其他df2只包含ID-s。結交新數據幀只行其ID不包含在第二數據幀

如何才能最好地包裝df3,其中只包含ID不在df2中的行。

看起來像星火SQL不支持這種類型的查詢:

sqlContext.sql( 「」 「SELECT * FROM table_df1 WHERE ID NOT IN(SELECT ID FROM table_df2) 」「」)

+0

,是支持這種類型的查詢? :) – eliasah

+0

至少在Oracle中支持純選擇部分,可以是其他一些數據庫 – user3292147

回答

1

Spark SQL將支持從Spark 2.0版開始的這種類型的子查詢(更多信息請參見Databricks blog)。

爲此在舊版本的Spark將是以下一種方法:

df3 = sqlContext.sql(
    """ 
    select 
    * 
    from df1 left join df2 on df1.id=df2.id 
    where df2.id is null 
    """ 
) 
相關問題