代码之家  ›  专栏  ›  技术社区  ›  Surender Raja

对case语句的pyspark查询引发错误

  •  0
  • Surender Raja  · 技术社区  · 1 年前

    我正在运行以下pyspark查询

    它抛出以下错误。我希望动态值通过varaibale-in-to-case语句传递

     data1 = 'HI'
     data2 = 'HELLO'
    
     spark.sql(f""" select  Initials,
                    case when Initials  in ('AM','NJ') then {data1} else {data2} end as s  
                    from omegawriter""").display()
    

    我得到以下错误

      A column or function parameter with name `HI` cannot be resolved.
      Project [Initials#69, CASE WHEN Initials#69 IN (AM,NJ) THEN 'HI ELSE 'HELLO END AS s#57]
    

    我不明白这个查询出了什么问题。有人能帮帮我吗

    1 回复  |  直到 1 年前
        1
  •  0
  •   过过招    1 年前

    需要引用纯文本值。

     spark.sql(f""" select  Initials,
                    case when Initials  in ('AM','NJ') then '{data1}' else '{data2}' end as s  
                    from omegawriter""").display()