如何比较spark scala中的两个数据帧?

how to compare two data frames in spark scala?

我有两个数据帧,每个数据帧都有最大时间戳值。

val Table1max=spark.read.format("parquet").option("header","true").load(s"${SourcePath}/ab12")
Table1max.createOrReplaceTempView("temp") 

val table2max=spark.read.format("parquet").option("header","true").load(s"${SourcePath}/abc")
table2max.createOrReplaceTempView("temp1")

Then select max update date from both

val table1maxvalue = spark.sql(s"select max(UPDATE_DATE) from temp")
val table2maxvalue= spark.sql(s"select max(UPDATE_DATE) from temp1")

Here table1maxvalue and table2maxvalue are dataframes.

table1maxvalue
+--------------------+
|    max(UPDATE_DATE)|
+--------------------+
|2022-05-02 01:04:...|
+--------------------+

table2maxvalue

+--------------------+
|    max(UPDATE_DATE)|
+--------------------+
|2022-05-02 01:04:...|
+--------------------+

现在我如何检查 table1maxvalue > table2maxvalue 它应该是什么。 喜欢

if(table1maxvalue<table2maxvalue){
Do something
}

由于它是数据框,我收到此错误:值 >= 不是 org.apache.spark.sql.DataFrame

的成员

请推荐。

您正在尝试将一个数据帧与另一个数据帧进行比较。 您实际上需要引用第一行,然后从该行中检索值。

在这种情况下,您可以使用以下方法:

table1maxvalue //Data frame
.head()        //get the first row
.getDate(0)    //get the first column as a date.