spark - scala - 如何检查配置单元中是否存在表格

时间:2017-09-28 19:53:26

标签: scala apache-spark

我必须使用spark(1.6.2)scala

检查hive中是否存在表

如果不是,我必须创建一个空数据帧并将其保存为配置表。

如果存在,则覆盖现有表。

我需要一个返回布尔值的函数,根据该函数我可以采取上述决定(是否创建新表或覆盖现有表)

3 个答案:

答案 0 :(得分:26)

的1.x:

def tableExists(table: String, sqlContext: SQLContext) =
  sqlContext.tableNames.contains(table)

2.x的:

def tableExists(table: String, spark: SparkSession) =
  spark.catalog.tableExists(table)

2.1.x或更高版本。

您可以使用spark.catalog.tableExists。积分将转至 Huseyin Oktay pointing that out

答案 1 :(得分:1)

我们还可以使用以下数据库名称对其进行定义。

1.6.x

sqlContext.tableNames("db_name").contains("tbl_name")

2.x:

spark.catalog.tableExists("db_name", "tbl_name")

答案 2 :(得分:1)

对于 spark 3.x Java,以下对我有用

boolean isTablePresent = sparkSession.catalog().tableExists({db_name},{table_name});