scala:选择不包含数据框元素的列

时间:2018-07-31 09:48:57

标签: scala apache-spark hive apache-spark-sql

我有这段代码,应该从不包含字符串的列列表中创建一个数据框。我试过了,但是没用:

val exemple = hiveObj.sql("show tables in database").select("tableName")!==="ABC".collect()

2 个答案:

答案 0 :(得分:1)

尝试使用过滤器方法:

import org.apache.spark.sql.functions._
import spark.implicits._
val exemple = hiveObj.sql("your query here").filter($"columnToFilter" =!= "ABC").show

注意:不等式运算符=!=仅适用于Spark 2.0.0+。如果您使用的是旧版本,则必须使用!==。您可以查看文档here

如果您需要过滤几列,可以这样做:

.filter($"columnToFilter" =!= "ABC" and $"columnToFilter2" =!= "ABC")

答案 1 :(得分:0)

我的问题的另一个替代答案:

val exemple1 = hiveObj.sql("show tables in database").filter(!$"tableName".contains("ABC")).show()