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桌子类型,不是吗?