【问题标题】:How to check if a Hive table exists using PySpark如何使用 PySpark 检查 Hive 表是否存在
【发布时间】:2019-09-23 17:25:58
【问题描述】:

我想使用 pysparkSQL 检查 Hive 中是否存在表 schemaname.tablename

Scala 中有一个选项spark.catalog.tableExists("schemaname.tablename")。但是,通过pySpark 不提供相同的功能。

寻找一种快速而干净的方法来使用PySpark检查 Hive 表是否存在

【问题讨论】:

    标签: python-2.7 pyspark apache-spark-sql


    【解决方案1】:

    pyspark.sql.catalog 模块包含在 spark >= 2.3.0

    如果您使用的是 spark ,您可以像下面这样使用:

    spark._jsparkSession.catalog().tableExists("schema.table")
    True
    
    spark._jsparkSession.catalog().tableExists("schema.table_false")
    False
    

    spark.catalog._jcatalog.tableExists("schema.table")
    True
    

    【讨论】:

      【解决方案2】:

      这里有更多选项。首先,让我们使用 df.write.saveAsTable("your_table") 从任意 df 创建一些随机表。

      选项 1 - Spark >= 2.0

      使用spark.catalog.listTables 即:

      "your_table" in [t.name for t in spark.catalog.listTables("default")] == True 
      

      选项 2 - Spark >= 1.3

      使用sqlContext.tableNames 即:

      "your_table" in sqlContext.tableNames("default") == True
      

      选项 3

      使用spark.sql 即:

      spark.sql("SHOW TABLES LIKE 'your_table'").count() == 1
      

      【讨论】:

        【解决方案3】:

        在 PySpark 中可以如下完成:

        spark.catalog._jcatalog.tableExists("schemaname.tablename")
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-01-31
          • 1970-01-01
          • 1970-01-01
          • 2020-09-24
          • 2021-05-14
          • 1970-01-01
          • 2019-12-29
          相关资源
          最近更新 更多