0
table_a
및 table_b
임시 테이블이 두 개 있고이 쿼리와 모든 조건이 올바르게 작동하려고합니다. SparkSQL
를 사용하여 이러한 두 테이블에서 위의 쿼리를 실행sparkSQL "CASE WHEN THEN"pyspark에 두 개의 테이블 열이있는 경우
SELECT DISTINCT CASE WHEN a.id IS NULL THEN b.id ELSE a.id END id,
CASE WHEN a.num IS NULL THEN b.num ELSE a.num END num,
CASE WHEN a.testdate IS NULL THEN b.testdate ELSE a.testdate END testdate
FROM table_a a
FULL OUTER JOIN table_b b
ON (a.id=b.id AND a.num=b.num AND a.testdate=b.testdate)
WHERE
(CASE WHEN a.t_amt IS NULL THEN 0 ELSE a.t_amt END)
<>
(CASE WHEN b.t_amt IS NULL THEN 0 ELSE b.t_amt END) OR
(CASE WHEN a.qty IS NULL THEN 0 ELSE a.qty END)
<>
(CASE WHEN b.qty IS NULL THEN 0 ELSE b.qty END)
ORDER BY
CASE WHEN a.id IS NULL THEN b.id ELSE a.id END,
CASE WHEN a.num IS NULL THEN b.num ELSE a.num END,
CASE WHEN a.testdate IS NULL THEN b.testdate ELSE a.testdate END
다음과 같은 오류를
sqlq = <the sql from above>
df = sqlContext.sql(sqlq)
"AnalysisException을 : 유 '생산'
a.id
'주어진 입력 열을 확인할 수 없습니다 : [ID, NUM, testdate ]; "
나는 가능성이있는 답변을 주셨지만, 문맥이나 귀하의 테이블에 대한 설명과 함께 귀하의 질문을 확장하고 귀하가 달성하고자하는 것이 더 나은 답변을 얻는 데 도움이 될 것입니다. – Flygenring