基于连接的dataframe列null与否连接多个dataframes

wa7juj8i  于 2021-07-12  发布在  Spark
关注(0)|答案(0)|浏览(176)

我使用的是spark-sql-2.4.1v。我有一个场景,我需要连接两个Dataframe,比如df1,df2。其中有一个连接条件,它使用SQLNVL(max(df2.col)、min(df1.col)函数。
不幸的是,在sparksql中,不允许使用nvl()函数作为非相等 predicate 的一部分,该函数会导致类似错误的相关子查询列
因此,决定有两个以上的dfs df3,df4获得最小速率日期和最大速率日期像下面的东西,以取代nvl一样的功能

df3 = df2.groupBy(col("data_date"),col("code"))
         .agg(min(col("rate_date")).as("min_rate_date"))

df4 = df2.groupBy(col("data_date"),col("code"))
         .agg(max(col("rate_date")).as("max_rate_date"))

df5=df3.join(df4);
现在我要回去参加最后的比赛
例如。 final_df = df1.join(df5) 有没有别的办法来优化这个?
如果需要更多的信息,请告诉我。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题