【发布时间】:2020-08-31 23:15:25
【问题描述】:
如何在 spark 中加入两个数据帧时使用 case 条件。
var date_a = s"CASE WHEN month(to_date(from_unixtime(unix_timestamp(dt, 'dd-MM-yyyy'))))
IN (01,02,03) THEN CONCAT(CONCAT(year(to_date(from_unixtime(unix_timestamp(dt, 'dd-MM-yyyy'))))-1,'-')
,substr(year(to_date(from_unixtime(unix_timestamp(dt, 'dd-MM-yyyy')))),3,4))
ELSE CONCAT(CONCAT(year(to_date(from_unixtime(unix_timestamp(dt, 'dd-MM-yyyy')))),'-'),
SUBSTR(year(to_date(from_unixtime(unix_timestamp(dt, 'dd-MM-yyyy'))))+1,3,4)) END"
val gstr1_amend = df1.join(gstr1_amend_lkup_data, df1("date_b") === df2(date_a))
但我得到的错误案例不是一列。
【问题讨论】:
-
你还在面对这个问题吗?
标签: scala apache-spark apache-spark-sql