【发布时间】:2021-12-07 18:42:47
【问题描述】:
我对 Snowflake 的新功能 -Infer Schema 表功能有疑问。 INFER SCHEMA 函数在 parquet 文件上表现出色,并返回正确的数据类型。但是,当 parquet 文件被分区并存储在 S3 中时,INFER SCHEMA 无法像处理 pyspark 数据帧那样发挥作用。
在DataFrames中,分区文件夹名称和值作为最后一列读取;有没有办法在 Snowflake Infer 架构中实现相同的结果?
例子:
@GregPavlik - 输入采用结构化拼花格式。当 parquet 文件在没有分区的情况下存储在 S3 中时,架构是完美派生的。
示例:{ “AGMT_GID”:1714844883, “AGMT_TRANS_GID”:640481290, "DT_RECEIVED": "20 302", “LATEST_TRANSACTION_CODE”:“我” }
Snowflake 推断架构为我提供了 4 个列名及其数据类型。
但是,如果 parquet 文件存储在分区中 - 如上图所示。
在 - LATEST_TRANSACTION_CODE =I/ 文件夹下,我会将文件保存为
示例:{ “AGMT_GID”:1714844883, “AGMT_TRANS_GID”:640481290, “DT_RECEIVED”:“20 302” }
在这种情况下,snowflake infer Schema 只提供了三列;但是,在 Pyspark 数据框中读取同一个文件会打印所有四列。
我想知道 Snowflake 中是否有一种解决方法来读取分区的 parquet 文件。
【问题讨论】:
-
你能展示一个简单的 JSON 输入和你想从模式推断中看到的输出吗?试图澄清最后一列点 - 似乎您想要的内容可从阶段读取的元数据中获得,但需要确认细节。
-
@GregPavlik - 我在原始问题中添加了更多详细信息。如果它澄清了您的疑问,请告诉我。
标签: snowflake-cloud-data-platform parquet