Snowflake 将镶木地板中的布尔值解释为 NULL?

Snowflake interprets boolean values in parquet as NULL?

Parquet 条目示例(所有条目的 is_active_entity 为真)

{
 "is_active_entity": true,
  "is_removed": false
}

证明所有值都取为 NULL 的查询

select  :IS_ACTIVE_ENTITY::boolean, count(*) from @practitioner_delta_stage/part-00000-49224c02-150b-493b-8036-54ab30a8ff40-c000.snappy.parquet group by :IS_ACTIVE_ENTITY::boolean ;

输出只有一组为NULL

:IS_ACTIVE_ENTITY::BOOLEAN    COUNT(*)
    NULL                                            4930277

我不知道哪里出错了,Spark 在 parquet 中编写了正确的模式,从示例中可以看出,但雪花将其视为 NULL。

我该如何解决这个问题?

您文件中的列已被引用。因此 "is_active_entity""IS_ACTIVE_ENTITY"

不同

请试试这个查询:

select :is_active_entity::boolean, count(*) from @practitioner_delta_stage/part-00000-49224c02-150b-493b-8036-54ab30a8ff40-c000.snappy.parquet group by :IS_ACTIVE_ENTITY::boolean ;

更多信息:https://docs.snowflake.com/en/sql-reference/identifiers-syntax.html#:~:text=The%20identifier%20is%20case%2Dsensitive