我想将我的数据转换为我的程序Spark-JAVA: 这是我的SQL查询:
SELECT ID AS Identifier, IFNULL(INTITULE,'') AS NAME_INTITULE,
IFNULL(ID_CAT,'') AS CODE_CATEGORIE
FROM db_1.evenement
where DATE_HIST > (select IFNULL(max(date_record),'0000-00-00 00:00:00')
from db_2.record_status where db_destination_name='AB' );
如何使其适用于两个数据集:
数据集ds_evenement:包含 evenement 记录
数据集ds_record_status:包含 record_status 记录
答案 0 :(得分:0)
您可以选择最大日期,交叉加入和过滤:
// Select max value from ds_record_status
ds_record_status.select(
coalesce(max(col("date_record")), lit(0).cast("timestamp")).alias("max_date")
).crossJoin(ds_evenement).where("DATE_HIST > max_date)
或只注册两个表:
ds_record_status.createOrReplaceTempView("ds_record_status");
ds_evenement.createOrReplaceTempView("ds_evenement");
并使用您几乎按原样查询:
IFNULL
替换coalesce
。