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

磚SQL -無法逃脫的美元符號($)在列名

VVM
新的貢獻者三世

似乎由於磚如何處理SQL細胞,是不可能逃脫時美元列名稱。

我希望以下工作:

% sql SELECT '你好' ' $ id '

反引號應該逃避一切。事實上這正是磚認為應該發生的。我能創建一個表以外的SQL命令(從Dataframe),有一個名為$ id列。當我做了一個展示創建表,磚建議使用“$ id”。

但似乎發生什麼是磚抓住眼前的任何查詢片段$ X。所以我得到一個空白列名稱。

查詢片段似乎隻有尊重\字符的轉義。但這並不預示會同撇號包羅萬象的逃避方法,作為反引號將解釋\字符,留給我一個字段名\ $ id。

誰有解決方案嗎?如果不是,這怎麼能提高到一個錯誤報告嗎?謝謝。

1接受解決方案

接受的解決方案

NateAnth
貢獻者三世

謝謝@Patrick Mascari讓我們注意,適當的工程和產品團隊意識到這個問題並相應地將優先考慮在未來需要解決。毫無埃塔,可以提供。

同時,考慮以下工作個隊伍:

  • python使用spark.sql()在一個細胞
  • 在SQL中使用磚SQL編輯器的角色

在原帖子查看解決方案

10個回答10

Lakshay
尊敬的貢獻者三世
尊敬的貢獻者三世

嗨@Patrick Mascari,理解這個問題,你有一個專欄叫“$ id”在你的表和當你“從表選擇$ id”那麼失敗。我的理解正確嗎?

Tayyab_Vohra
貢獻者

嗨@Patrick Mascari你能嚐試使用SQL ()功能,我寫了下麵的代碼用一個例子請檢查是否適合你。

你可以提取任何轉義序列在列

data =火花。createDataFrame ([(Alberto, 101),(“達科塔”,202年),(“Kumar”, 330年),(“濕婆”,4),(“Sree”, 5),(“凱文”,6)],[“名稱”、“id”美元)data.createOrReplaceTempView (temp_table) sql(“選擇“$ id”作為id、名稱從temp_table”),告訴()

VVM
新的貢獻者三世

我想建立一個表在磚使用CREATE table語句的SQL。但是我不能名字列id,因為美元的$ id '不工作(盡管磚”顯示創建說它應該)

我知道我可能可以解決這個交換到python / scala火花運行查詢。如果這是唯一的手段,那麼磚肯定有一個bug,需要報告和解決. .

NateAnth
貢獻者三世

謝謝你與我們磚社區!

當你說你這磚SQL,我不理解為什麼create table命令不是為你工作。請看到我的工作示例美元的列名稱:

圖像

進一步縮小你麵臨什麼。請澄清如果你嚐試這磚SQL的角色在UI中通過SQL編輯器(比如我的截圖),或在一個筆記本數據科學與工程形象。截圖將有助於進一步了解。

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

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

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

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

Baidu
map