在 Databricks 中创建以 NULL 作为列的增量表时 Spark SQL 错误

Ani*_*mj' 4 sql apache-spark-sql databricks delta-lake

SELECT我正在尝试从语句和列的值创建一个增量表NULL。创建表时没有错误,但在尝试运行 select 时抛出错误。

%sql
create or replace table test1 as (
  select
    col1,
    null as a,
  from
    table1
);
Run Code Online (Sandbox Code Playgroud)

没有出现错误。

%sql
select * from test1;
Run Code Online (Sandbox Code Playgroud)

错误 :IllegalStateException: Couldn't find a#31234 in [col1#31233]

Kom*_*owy 7

这是因为通过写入,您创建了一个VOIDnull类型的列- 检查您的架构。

您需要将其转换为有用的类型,例如。STRING,创建表时:

create or replace table test1 as
  select
    col1,
    cast(null as string) as a,
  from
    table1;
Run Code Online (Sandbox Code Playgroud)

然后查询就会起作用。