【问题标题】:I want to fetch count (*) for all tables in a DB at a time along with 'Table_Name' in DataBricks SQL我想一次获取数据库中所有表的计数(*)以及 DataBricks SQL 中的“Table_Name”
【发布时间】:2020-09-25 01:38:39
【问题描述】:

例如,我想在 Databricks 中输出类似的内容。

我知道如何在 SSMS 或 Oracle 中执行此操作,但该语法在 Databricks 中不起作用。我尝试使用“显示表​​格”,但它不符合我的目的。

【问题讨论】:

    标签: tsql apache-spark databricks azure-databricks databricks-connect


    【解决方案1】:

    检查这是否有帮助-

     spark.range(3).createOrReplaceTempView("df1")
        println(spark.catalog.listTables().map(_.name).collect()
          .map(table => table -> spark.table(table).count()).mkString(", "))
    
        /**
          * (df1,3)
          */
    

    使用db_name

     println(spark.catalog.listTables(spark.catalog.currentDatabase).map(_.name).collect()
          .map(table => table -> spark.table(table).count()).mkString(", "))
    
        /**
          * (df1,3)
          */
    

    【讨论】:

    • 感谢您的信息,但我在哪里可以指定数据库名称?因为没有给出数据库名称,它需要很长时间才能给出任何输出。它还会对表格进行更改吗?
    • 查看编辑,如果有帮助,请随时接受 + 点赞:)
    • > 会更改表格吗? === 不,所有这些都是只读操作
    • spark.catalog.listTables().map(_.name).map(table => table -> spark.table(table).count()).show(false) --> 我用过这个,它给出了一条消息'未关闭的块'
    • 完整堆栈跟踪?
    猜你喜欢
    • 2020-06-05
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多