無法將字符串強製轉換為varchar

在Databricks Runtime 8.0及以上版本中使用varchar類型。它隻能在表模式中使用。不能在函數或操作符中使用。

寫的DD沙瑪

最後發布日期:2022年5月10日

問題

你在試圖施放一個字符串將列類型為varchar但這並不奏效。

刪除

信息

varchar數據類型(AWS|Azure|GCP)已在Databricks Runtime 8.0及以上版本提供。

  1. 創建一個簡單的Delta表,其中一列作為類型字符串
    創建或替換表delta_table1 (' col1 ' string)
  2. 使用顯示表在新創建的表上,它報告一個字符串類型。
    創建表delta_table1
    SHOW CREATE TABLE結果顯示字符串類型。
  3. 基於第一個Delta表創建第二個Delta表,並將字符串將列輸入varchar
    SELECT (col1 AS VARCHAR(1000)) FROM delta_table1;
  4. 使用顯示表在新創建的表上,它報告表已創建,但列已創建字符串類型。
    創建表delta_varchar_table1;
    SHOW CREATE TABLE結果顯示table1上的字符串類型。

導致

varchar類型隻能在表模式中使用。不能在函數或操作符中使用。

請檢查Spark支持的數據類型文檔獲取更多信息。

解決方案

  1. 你不能施法字符串varchar,但您可以創建一個varcharδ表。
    創建或替換表delta_varchar_table2 (' col1 ' VARCHAR(1000))
  2. 使用顯示表在新創建的表上,它報告一個varchar類型。
    創建表delta_varchar_table;
    SHOW CREATE TABLE結果顯示表2上的varchar類型。
  3. 現在可以創建另一個varchar表,基於第一個,它保留了varchar類型。
    使用sql語句創建或替換表delta_varchar_table3
  4. 使用顯示表在新創建的表上,它報告一個varchar類型。
    創建表delta_varchar_table3;
    SHOW CREATE TABLE結果顯示表3上的varchar類型。