取消
顯示的結果
而不是尋找
你的意思是:

問題引用結構體類型列在使用ODBC

dcrezee
新的貢獻者三世

我試圖連接到使用pyodbc磚,我遇到一個問題結構列。

據我理解,結構體數組列和列pyodbc不支持,但是它們轉換為JSON。然而,當有嵌套列包含引號(“),返回的JSON無效,即引用不逃。

我使用數據集:

從pyspark。sql行數據導入=[(嵌套=行(nested_column =“嵌套\“性格”)),]df = spark.sparkContext.parallelize(數據).toDF () (df。寫.format(“δ”).mode .option(“覆蓋”)(“路徑”,“/δ/ quotes_issue /”) .saveAsTable (“default.quotes_issue”))

查詢數據後通過pyodbc(使用文檔在這裏)

康涅狄格州= pyodbc。連接(“DSN = Databricks_Cluster”, autocommit = True)光標= conn.cursor()遊標。執行(“SELECT * FROM default.quotes_issue”)行= cursor.fetchall行(r):打印(右)

這給了我以下無效的JSON輸出。

”{nested_column”:“嵌套”字符"}

我試著與磚計算集群的端點,以及新的SQL端點。也試過對於Python磚SQL的連接,但他們都有同樣的問題。

有辦法配置數據磚,辛巴司機不知怎麼正確地轉義引號?

11日回複11

Kaniz
社區經理
社區經理

嗨@Derk Crezee,是的,我收到了你的問題。下麵的代碼片段已經在上麵的鏈接共享由我和它允許您連接使用pyodbc磚。你可以把它放在init腳本。

% sh旋度https://packages.microsoft.com/keys/microsoft.asc| apt-key添加——旋度https://packages.microsoft.com/config/ubuntu/16.04/prod.list> /etc/apt/sources.list.d / mssql-release。apt-get列表更新ACCEPT_EULA = Y apt-get安裝msodbcsql17 apt-get - Y安裝unixodbc-dev sudo apt-get pyodbc安裝python3-pip - Y pip3安裝,升級

dcrezee
新的貢獻者三世

嗨@Kaniz所有,謝謝你的回複。我想我誤解了。所以建議是安裝包和更新pyodbc磚集群使用的?將試一試。

Kaniz
社區經理
社區經理

嗨@Derk Crezee,是的。這就是我的意思。請試著上麵的代碼。

dcrezee
新的貢獻者三世

謝謝@Kaniz開羅(磚)。試過以上腳本啟動腳本添加到集群配置中我使用磚,但問題仍然存在。

BilalAslamDbrx
尊敬的貢獻者二世
尊敬的貢獻者二世

@Derk Crezee——我今天學到的東西。顯然ODBC不轉換為JSON。規範沒有定義如何返回複雜類型,事實上,隻在SQL 2016了。這正是你跑到!

曆史的終結的教訓:grinning_face_with_smiling_eyes:這裏有一個解決辦法:

從default.quotes_issue選擇to_json(嵌套的)

這將返回:

{“nested_column”:“嵌套\“字符”}

這是有效的JSON。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map