我在spark 2.2中使用一个数据框并在那里加载数据。我在使用多个列的Filter函数中使用&&运算符。该错误表示错误:value &&不是String的成员
这是我的代码。
scala> val orders = spark.sparkContext.textFile("D:\\SparkExamples\\retail_db\\orders\\part-00000")
scala> import java.sql.Timestamp
scala> val ordersMap = orders.map(x => (x.split(",")(0).toInt,Timestamp.valueOf(x.split(",")(1)),x.split(",")(2).toInt,x.split(",")(3)))
scala> val ordersSchema = ordersMap.toDF("order_id","order_date","order_customer_id","order_status")
以下过滤器正常工作-
ordersSchema.select($"*").filter($"order_status"=== "COMPLETE").show
但是当我将两列与&&放在过滤器中时,如下所示-
scala> ordersSchema.select($"*").filter($"order_status"!== "COMPLETE" && $"order_date" === "2013-07-25 00:00:00").show
<console>:34: error: value && is not a member of String
ordersSchema.select($"*").filter($"order_status"!== "COMPLETE" && $"order_date" === "2013-07-25 00:00:00").show
错误即将出现。有指针吗?
答案 0 :(得分:1)
&&
不是火花Columns
的有效逻辑运算符,请改用and
:
ordersSchema.select($"*").filter($"order_status" =!= "COMPLETE" and $"order_date" === "2013-07-25 00:00:00").show