Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
scala:选择数据框中不包含元素的列_Scala_Apache Spark_Hive_Apache Spark Sql - Fatal编程技术网

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

scala:选择数据框中不包含元素的列,scala,apache-spark,hive,apache-spark-sql,Scala,Apache Spark,Hive,Apache Spark Sql,我有这样一组代码,应该从不包含字符串的列列表中创建一个数据帧。我试过这个,但不起作用: val exemple = hiveObj.sql("show tables in database").select("tableName")!==="ABC".collect() 尝试使用筛选方法: import org.apache.spark.sql.functions._ import spark.implicits._ val exemple = hiveObj.sql("your query

我有这样一组代码,应该从不包含字符串的列列表中创建一个数据帧。我试过这个,但不起作用:

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

尝试使用筛选方法:

import org.apache.spark.sql.functions._
import spark.implicits._
val exemple = hiveObj.sql("your query here").filter($"columnToFilter" =!= "ABC").show
注:不等式运算符==仅适用于Spark 2.0.0+。如果您使用的是旧版本,则必须使用!==。您可以查看文档

如果需要筛选多个列,可以这样做:

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

我的问题的另一个备选答案是:

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

filter..org.apache.spark.sql.DataFrame无法应用于数据库中的布尔值val example=hiveObj.sqlshow表。filter$tableName==ABC.show您需要选择一个表。如果我正确理解了您的问题,那么您希望从配置单元表中筛选列。为什么不执行select*from database.tableName?这里的tableName指的是列而不是表OK,我想我知道发生了什么。用于检查两列是否相等的比较运算符为==,而不是==。请记住,您需要导入spark implicits import spark.implicits.\以使用$column选择器。但是如何使大小写相反:not contains