无法将以下T-SQL查询部分ISNULL(NAME,'N/A')转换为Spark-SQL等效项SELECT ID,ISNULL(NAME,'N/A')AS名称,公司从测试到将下面的T-SQL查询部分ISNULL(NAME,'N/A')转换为Spark-SQL等效项SELECT ID,ISNULL(NAME,'N/A')作为测试中的名称,公司
8fsztsew1#
你可以用两种方法来做,就像这样:
df = spark.createDataFrame([(1, None), (2, None)], "id: int, value: string") df.show() +---+-----+ | id|value| +---+-----+ | 1| null| | 2| null| +---+-----+ df.na.fill("N/A", subset=["value"]).show() +---+-----+ | id|value| +---+-----+ | 1| N/A| | 2| N/A| +---+-----+ from pyspark.sql.functions import col, when df.withColumn("value", when(col("value").isNull(), "N/A")).show() +---+-----+ | id|value| +---+-----+ | 1| N/A| | 2| N/A| +---+-----+
这两个选项的结果都相同。
juud5qan2#
函数isnull()仅返回一个布尔值,说明输入是空值还是空值。也可以尝试在case语句或(coalesce)中使用expression [https://docs.databricks.com/sql/language-manual/functions/coalese.html]
CASE WHEN NAME IS NULL THEN 'N/A' ELSE NAME END AS NAME
或
SELECT COALESCE(NAME,'N/A') AS NAME
希望能帮上忙...
2条答案
按热度按时间8fsztsew1#
你可以用两种方法来做,就像这样:
这两个选项的结果都相同。
juud5qan2#
函数isnull()仅返回一个布尔值,说明输入是空值还是空值。也可以尝试在case语句或(coalesce)中使用expression [https://docs.databricks.com/sql/language-manual/functions/coalese.html]
或
希望能帮上忙...