仅使用ID不包含在第二个DataFrame中的行创建新的DataFrame



有两个dataframe。一个是df1,包含事件,其中一列是ID。另一个df2只含有ID -s。

如何最好地创建df3,它只包含ID不存在于df2中的行。

看起来Spark SQL不支持这种类型的查询:

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

Spark SQL将从Spark 2.0版本开始支持这种类型的子查询(更多信息可在Databricks博客上获得)。

在旧版本的Spark中可以这样做:

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

相关内容

  • 没有找到相关文章

最新更新