如何比较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.

相关内容

  • 没有找到相关文章

最新更新