Я не уверен, что я в правильной группе для этого вопроса.Любой я создал следующий код sql в Databricks, однако я получаю сообщение об ошибке:
Ошибка в выражении SQL: AnalysisException: не удается разрешить 'a.COUNTRY_ID
' для заданных входных столбцов: [a."PK_LOYALTYACCOUNT"; "COUNTRY_ID"; "CDC_TYPE", b. "PK_LOYALTYACCOUNT"; "COUNTRY_ID"; "CDC_TYPE"];строка 7, поз. 7;
Я знаю, что код работает, поскольку я успешно запустил код на моем SQL Server. Код выглядит следующим образом:
tabled = spark.read.csv("adl://carlslake.azuredatalakestore.net/testfolder/dbo_tabled.csv",inferSchema=True,header=True)
tablee = spark.read.csv("adl://carlslake.azuredatalakestore.net/testfolder/dbo_tablee.csv",inferSchema=True,header=True)
tabled.createOrReplaceTempView('tabled')
tablee.createOrReplaceTempView('tablee')
%sql
; with cmn as
( SELECT a.CDC_TYPE,
a. PK_LOYALTYACCOUNT, --Add these also in CTE result set
a.COUNTRY_ID --Add these also in CTE result set
FROM tabled a
INNER JOIN tablee b
ON a.COUNTRY_ID = b.COUNTRY_ID
AND a.PK_LOYALTYACCOUNT = b.PK_LOYALTYACCOUNT
AND a.CDC_TYPE = 'U'
)
SELECT 1 AS is_deleted,
a.*
FROM tabled a
INNER JOIN cmn
ON a.CDC_TYPE = cmn.CDC_TYPE
and a.COUNTRY_ID = cmn.COUNTRY_ID
AND a.PK_LOYALTYACCOUNT = cmn.PK_LOYALTYACCOUNT
UNION ALL
SELECT 0 AS is_deleted,
b.*
FROM tablee b
INNER JOIN cmn
ON b.CDC_TYPE = cmn.CDC_TYPE
and b.COUNTRY_ID = cmn.COUNTRY_ID
AND b.PK_LOYALTYACCOUNT = cmn.PK_LOYALTYACCOUNT
UNION ALL
SELECT NULL,
a.*
FROM tabled a
WHERE a.CDC_TYPE = 'N'
UNION ALL
SELECT NULL,
b.*
FROM tablee b
WHERE b.CDC_TYPE = 'N'
при запуске простогозапрос ...
example1 =
spark.sql("""select * from tablee""")
или example2 =
spark.sql("""select * from tabled""")
Я получаю следующий вывод, так что я знаю, что таблицы есть
Любые предложения будут хорошо приняты.