【问题标题】:Replicate T-SQL ISNULL function logic into SparkSQL将 T-SQL ISNULL 函数逻辑复制到 SparkSQL
【发布时间】:2021-09-23 13:52:35
【问题描述】:

我正在使用 Databricks 来连接一些在 ADLS 中存储为 parquet 文件的表。我正在导入文件,将数据帧保存为 TEMP VIEW,然后在 spark.sql('') 中构建 JOIN 的语法。

在 Join 中,我必须复制我的同事以前开发的一些 SQL 代码,这些代码以这种方式使用 T-SQL ISNULL 函数: ISNULL(titledict.Category_Level_1, urldict.Category_Level_1) 基本上他们给出了替换值,这是我不能用 SparkSQL 的 ISNULL 函数做的事情。 “titledict”和“urldict”是整个 SQL JOIN 逻辑中 2 个表的别名。 在这种情况下,从 T-SQL 复制 ISNULL 函数的最佳方法是什么?

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql


    【解决方案1】:

    有一个coalesce 函数可以做同样的事情。如果第一个值为空,则返回第二个值。

    df.withColumn('test', coalesce(col('test_value'), lit('Fallback value')))
    

    【讨论】:

    • 或第三个,或第四个,或下一个......根据需要添加任意数量
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 2017-06-03
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多