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
Apache spark Spark-从数据库获取表_Apache Spark_Apache Spark Sql - Fatal编程技术网

Apache spark Spark-从数据库获取表

Apache spark Spark-从数据库获取表,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我必须对给定数据库中的所有表执行操作,因此我使用以下代码 然而,它也给了我视图,有没有一种方法可以只过滤表 代码 def getTables(databaseName:String)(隐式spark:SparkSession):数组[String]={ val tables=spark.sql(s“show tables from${databaseName}”).collect().map((1).asInstanceOf[String]) logger.debug(找到“${tables.m

我必须对给定数据库中的所有表执行操作,因此我使用以下代码

然而,它也给了我视图,有没有一种方法可以只过滤表

代码

def getTables(databaseName:String)(隐式spark:SparkSession):数组[String]={
val tables=spark.sql(s“show tables from${databaseName}”).collect().map((1).asInstanceOf[String])
logger.debug(找到“${tables.mkString(“,”}”)
桌子
}
另外,`显示视图显示错误'

scala>spark.sql(“显示来自gshah03;的视图”).show
org.apache.spark.sql.catalyst.parser.ParseException:
“从”处缺少“功能”(第1行,位置11)
==SQL==
显示来自gshah03的视图;
-----------^^^
位于org.apache.spark.sql.catalyst.parser.ParseException.withCommand(ParseDriver.scala:241)
位于org.apache.spark.sql.catalyst.parser.AbstractSqlParser.parse(ParseDriver.scala:117)
位于org.apache.spark.sql.execution.SparkSqlParser.parse(SparkSqlParser.scala:48)
位于org.apache.spark.sql.catalyst.parser.AbstractSqlParser.parsePlan(ParseDriver.scala:69)
位于org.apache.spark.sql.SparkSession.sql(SparkSession.scala:643)
…49删去
试试这个-

val df=spark.range(1,5)
df.createOrReplaceTempView(“df_视图”)
println(spark.catalog.currentDatabase)
val db:Database=spark.catalog.getDatabase(spark.catalog.currentDatabase)
val tables:Dataset[Table]=spark.catalog.listTables(db.name)
tables.show(假)
/**
*违约
* +-------+--------+-----------+---------+-----------+
*|名称|数据库|描述|表格类型| isTemporary|
* +-------+--------+-----------+---------+-----------+
*| df|u视图|空|空|临时|真|
* +-------+--------+-----------+---------+-----------+
*/

也许@LuckyGuess谢谢,但它不适用于
蜂巢
表类型
不存在…也许你可以做
显示视图
,除了使用
显示表
?@LuckyGuess它显示错误你想在这里显示什么,输出显示
视图
名称。你可以使用ng桌子类型,不是吗?