無法將字符串施放到Varchar

在Databricks運行時8.0及更高版本中使用VARCHAR類型。它隻能在表模式中使用。它不能用於功能或操作員中。

寫的DD Sharma

上次出版於:2022年5月10日

問題

您正在嚐試投射細繩類型列到Varchar但這是不起作用的。

刪除

信息

VARCHAR數據類型(AWS|天藍色|GCP)可在Databricks運行時8.0及更高版本中使用。

  1. 創建一個簡單的Delta表,一列作為類型細繩
    %SQL使用Delta創建或替換表Delta_table1(`col1`字符串);
  2. 利用顯示表在新創建的表上,它報告了細繩類型。
    %sql show create table delta_table1;
    顯示創建表結果顯示字符串類型。
  3. 根據第一個創建第二個三角洲表,然後轉換細繩將列輸入Varchar
    %sql創建或替換表Delta_varchar_table1使用delta作為select cast(col1 as varchar(1000))從delta_table1;
  4. 利用顯示表在新創建的表上,它報告了該表的創建,但該列為細繩類型。
    %sql show create table delta_varchar_table1;
    顯示創建表結果在表1上顯示字符串類型。

原因

Varchar類型隻能在表模式中使用。它不能用於功能或操作員中。

請查看火花支持的數據類型文檔以獲取更多信息。

解決方案

  1. 你不能鑄造細繩Varchar,但是您可以創建一個Varchar三角洲表。
    %sql創建或替換表Delta_varchar_table2(`col1` varchar(1000))使用delta;
  2. 利用顯示表在新創建的表上,它報告了Varchar類型。
    %sql show create table delta_varchar_table2;
    顯示“創建表”結果在表2上顯示VARCHAR類型。
  3. 您現在可以創建另一個VarcharDelta表,基於第一個,並保持Varchar類型。
    %sql創建或替換表delta_varchar_table3使用delta作為select *從delta_varchar_table2; select *;
  4. 利用顯示表在新創建的表上,它報告了Varchar類型。
    %sql show create table delta_varchar_table3;
    顯示“創建表”結果在表3上顯示varchar類型。