比较Scala中两列的字符串值

dwbf0jvd  于 2022-11-09  发布在  Scala
关注(0)|答案(2)|浏览(211)

我想要比较 Dataframe 中的两个字符串列x和y。如果它们相同(不区分大小写),我想返回x,如果它们不同,我想连接x和y。

select (case when x = y then x else concat(x + ". " + y) end) as match from test

在Scala中

df.select(when(col("x") == col("y"), col("x") )
        .otherwise(concat(col("x"),lit('. '), col("y")))
        .as("match"))

我在测试时出现以下错误
错误:类型不匹配;找到:需要布尔值:org.apache.park.sql.Column

neekobn8

neekobn81#

在Scala Spark上使用=代替==进行相等性检查。

df.select(when(col("x") === col("y"), col("x") )
        .otherwise(concat(col("x"),lit('. '), col("y")))
        .as("match"))
ws51t4hk

ws51t4hk2#

与其说这是一个Scala问题,不如说是一个Spark问题。您应该使用===而不是==

相关问题