sparkSQL中的.where里面的“=”的使用

我们必须要使用===而不是=或者==

我们来看一个例子:

假如这么一个表,我们想进行条件查询

+---+-----+---+----+-------+
| id| name|age|addr| salary|
+---+-----+---+----+-------+
|  1|zhang| 49|  bj|10000|
|  2| wang| 34|  sh| 1000|
|  3|   li| 28|  sz| 5000|

(1)===

df2.select($"name",$"addr").where($"name" === "li").show()

结果:

+----+----+
|name|addr|
+----+----+
|  li|  sz|
+----+----+

(2)==

scala> df2.select($"name",$"addr").where($"name" == "li").show()
<console>:29: error: overloaded method value where with alternatives:
  (conditionExpr: String)org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] <and>
  (condition: org.apache.spark.sql.Column)org.apache.spark.sql.Dataset[org.apache.spark.sql.Row]
 cannot be applied to (Boolean)
       df2.select($"name",$"addr").where($"name" == "li").show()

(3)=

scala> df2.select($"name",$"addr").where($"name" = "li").show()
<console>:29: error: missing argument list for method $ in class StringToColumn
Unapplied methods are only converted to functions when a function type is expected.
You can make this conversion explicit by writing `$ _` or `$(_)` instead of `$`.
       df2.select($"name",$"addr").where($"name" = "li").show()

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值