pyspark sql jdbc error - неправильный синтаксис рядом с ключевым словом «SET». - PullRequest
0 голосов
/ 07 сентября 2018

Ниже приведен пример SQL, который я пытаюсь запустить, но он выдает мне ошибку - ***. Jdbc.SQLServerException: неверный синтаксис рядом с ключевым словом "SET" "

tp_temp = """
SET NOCOUNT ON
declare @lp_dt dt = (select max(pt_dt) from [DB_TABLE].[db].[DATA] where p_type='WSD')
declare @L_dte tb (pt, pt_type char(1))

insert into @L_dte  SELECT pt_dt, pt_type
  FROM from [DB_TABLE].[db].[DATA]
  where (PT_Type = 'Z' and Month(pt_dt) in (1,4,7,10) and pt_dt > '2017 Sep 1') or (PT_Type = 'K' and pt_dt = @lp_dt )
group by pt_dt, PT_Type
order by pt_dt

SELECT z_id_alt, z_id, z_Status_Alt, c_Gp_CCD, Gender, Age, ctk as CTK_Red, CAT_Title, temp_Group, Comp_price, terminator_action_alt AS Terminator_Action, v_pt.PT_Dt,CASE 
    WHEN COALESCE([Acb_Indicator], '') = ''
        THEN ('No')
    ELSE ('Yes')
    END AS  [Is Acb],
                     COALESCE(nullif([Region_Desc_NEWCO_Original], ''), Region_Desc_NEWCO) AS Region_Desc_NEWCO,
                     COALESCE(nullif([POG3_Desc_Original], ''), POG3_Desc) AS  POG3_Desc,
                      COALESCE(nullif([POG9_Desc_Original], ''), POG9_Desc) AS POG9_Desc, COALESCE(nullif(BSD_Function, ''), OrgUnit_Function_L2_NEWCO) as OrgUnit_Function_L2_NEWCO, CASE 
    WHEN COALESCE(nullif([POG3_Desc_Original], ''), POG3_Desc) IN (
            SELECT [POG_Desc]
            FROM [DB_FREE].[dbz].[Free_dom]
            WHERE POG_Type = 'POG3'
            )
        OR COALESCE(nullif([POG9_Desc_Original], ''), POG9_Desc) IN (
            SELECT [POG_Desc]
            FROM [DB_FREE].[dbz].[Free_dom]
            WHERE POG_Type = 'POG9'
            )
        THEN 'Yes'
    ELSE 'No'
    END AS [Restricted_Home], Zero) AS Booring
    FROM   (SELECT * FROM [DB_FREE].[dbz].[Free_dom] WHERE noshow = 'N' AND E_Type <> 'SubConsole') as v_pt
    INNER JOIN @l_pt_dt as pt_dt on v_pt.pt_dt = pt_dt.pt_dt and v_pt.pt_type = pt_dt.pt_type
    LEFT OUTER JOIN [DB_TABLE].[db].[DATA] AS o_p ON o_p.[u_number] = v_pt.ete_idg """

df_temp= spark.read.jdbc(url=jdbcUrl, table=tp_temp, properties=connectionProperties)

Для простого SQL, начинающегося с команды Select, он работает, но для кода, начинающегося с SET или WITH, он выдает ошибки, пожалуйста, дайте мне знать, как я могу создать таблицу из этого кода SQL в фрейме данных pyspark

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...