怎么使用Spark Java比较两个Spark数据帧的Spark SQL查询

来源:爱站网时间:2021-12-02编辑:网友分享
我有两个数据框。我正在从Kafka读取的输入数据框,以及我正在从DB2数据库读取的另一个数据框。但是最近有人来爱站技术小编:怎么使用Spark Java比较两个Spark数据帧的Spark SQL查询,面对这个问题,一篇文章就能解决,现在发出来给大家参考参考。

问题描述


我有两个数据框。我正在从Kafka读取的输入数据框,以及我正在从DB2数据库读取的另一个数据框。

注意:我正在使用Spark Java进行编码。

要求为:

例如

INPUT_DF

ID  NAME    CITY        DATE
----------------------------------  
111 aaa     ATLANTIC    20200201    
222 bbb     PACIFIC     20200202    
333 bbb     INDIAN      20200201    
444 NNN     CORAL       20200205    
555 bbb     INDIAN      20200206    
666 aaa     ATLANTIC    20200201    
BASE_DATAFRAME from DB2 TABLE

ID  NAME    CITY        DATE
----------------------------------
222 CCC     PACIFIC     20200201
333 bbb     ATLANTIC    20200203
444 NNN     CORAL       20200206
555 bbb     INDIAN      20200202

结果1:

ID  NAME    CITY        DATE
----------------------------------
111 aaa     ATLANTIC    20200201
666 aaa     ATLANTIC    20200201

结果2:

ID  NAME    CITY        DATE
----------------------------------
222 bbb     PACIFIC     20200202

请帮助我进行查询以获得结果。

谢谢

思路:


找到解决方案..在下面的查询中使用以同时获得两个结果。

Result 1:
spark.sql("SELECT f.* FROM INPUT_DF f LEFT JOIN BASE_DATAFRAME s ON f.ID=s.ID WHERE s.ID is NULL");

Result 2:
spark.sql("SELECT f.* FROM INPUT_DF f JOIN BASE_DATAFRAME s ON f.ID=s.ID WHERE f.DATE>s.DATE and (f.names.name OR f.citys.city)");

 以上内容就是爱站技术频道小编为大家分享的怎么使用Spark Java比较两个Spark数据帧的Spark SQL查询,看完以上分享之后,大家应该都知道怎么操作了吧。

上一篇:怎么将列表放入地图中

下一篇:如何从jar文件动态加载类

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载