我必须使用spark(1.6.2)scala
检查hive中是否存在表如果不是,我必须创建一个空数据帧并将其保存为配置表。
如果存在,则覆盖现有表。
我需要一个返回布尔值的函数,根据该函数我可以采取上述决定(是否创建新表或覆盖现有表)
答案 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});