簡體   English   中英

從 Azure Databricks 描述雪花表

[英]Describe Snowflake table from Azure Databricks

我想為 Snowflake 表發出DESC TABLE SQL 命令並使用 Azure Databricks,但我無法弄清楚! 我沒有收到任何錯誤,但我也沒有得到任何結果。 這是我正在使用的 Python 代碼:

options_vcp = {
  "sfUrl": snowflake_url,
  "sfUser": user,
  "sfPassword": password,
  "sfDatabase": db,
  "sfWarehouse": wh,
  "sfSchema": sch
}

sfUtils = sc._jvm.net.snowflake.spark.snowflake.Utils

sfUtils.runQuery(options_vcp, "DESC TABLE myTable")

我可以使用"sfDatabase""sfWarehouse"下載雪花表,因此它們看起來是正確的。 我可以在 Snowflake 中運行DESC TABLE命令並獲得正確的結果。 但我從 databricks 得到的唯一輸出是:

Out[1]: JavaObject id=o315

有誰知道如何顯示此JavaObject或知道從 Databricks 運行DESC TABLE的不同方法?

來自文檔: 執行 DDL/DML SQL 語句

runQuery方法只返回 TRUE 或 FALSE。 它適用於不返回結果集的語句,例如 CREATE TABLE 等 DDL 語句和 INSERT、UPDATE 和 DELETE 等 DML 語句。 它對於返回結果集的語句沒有用,例如 SELECT 或 SHOW。

另一種方法是使用INFORMATION_SCHEMA.COLUMNS視圖:

df = spark.read.format(SNOWFLAKE_SOURCE_NAME)
    .options(sfOptions)
    .option("query", "SELECT * FROM information_schema.columns WHERE table_name ILIKE 'myTable'")
    .load()

相關: 將數據從 Snowflake 移動到 Spark

使用 DataFrame 時,Snowflake 連接器僅支持 SELECT 查詢。

使用說明

目前,連接器在使用 DataFrame 時不支持其他類型的查詢(例如 SHOW 或 DESC 或 DML 語句)。

我建議在您的 select 語句中使用 get_ddl() 來獲取對象定義:

https://docs.snowflake.com/en/sql-reference/functions/get_ddl.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM