- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个填充了多边形的地理数据框的几何列,我需要将它们上传到 Snowflake。
我一直在将 geodataframe 的几何列导出到文件,并尝试了 CSV 和 GeoJSON 格式,但到目前为止,我要么总是收到错误,要么临时表总是空着。
这是我的代码:
design_gdf['geometry'].to_csv('polygons.csv', index=False, header=False, sep='|', compression=None)
import sqlalchemy
from sqlalchemy import create_engine
from snowflake.sqlalchemy import URL
engine = create_engine(
URL(<Snowflake Credentials Here>)
)
with engine.connect() as con:
con.execute("PUT file://<path to polygons.csv> @~ AUTO_COMPRESS=FALSE")
然后在 Snowflake 上运行
create or replace table DB.SCHEMA.DESIGN_POLYGONS_STAGING (geometry GEOGRAPHY);
copy into DB.SCHEMA."DESIGN_POLYGONS_STAGING"
from @~/polygons.csv
FILE_FORMAT = (TYPE = CSV FIELD_DELIMITER = '|' SKIP_HEADER = 1 compression = None encoding = 'iso-8859-1');
生成以下错误:
“文件 (6) 中的列数与对应表 (1) 中的列数不匹配,使用文件格式选项 error_on_column_count_mismatch=false 忽略此错误文件‘@~/polygons.csv.gz’,第 3 行, character 1 Row 1 starts at line 2, column "DESIGN_POLYGONS_STAGING"[6] 如果您想在遇到错误时继续加载,请为 ON_ERROR 选项使用其他值,例如“SKIP_FILE”或“CONTINUE”。有关更多信息加载选项,请在 SQL 客户端中运行 'info loading_data'。”
谁能指出我做错了什么?
最佳答案
受@Simeon_Pilgrim 评论的启发,我回到了 Snowflake 的文档。我在那里找到了一个将字符串文字转换为 GEOGRAPHY 的示例。
https://docs.snowflake.com/en/sql-reference/functions/to_geography.html#examples
select to_geography('POINT(-122.35 37.55)');
我的多边形看起来更像是描述多边形的字符串,而不是实际的 GEOGRAPHY,因此我决定需要将它们视为字符串,然后对它们调用 TO_GEOGRAPHY()。
我很快发现它们需要用单引号显式括起来并复制到登台表的 VARCHAR 列中。这是通过修改 CSV 导出代码实现的:
import csv
design_gdf['geometry'].to_csv(<path to polygons.csv>,
index=False, header=False, sep='|', compression=None, quoting=csv.QUOTE_ALL, quotechar="'")
暂存表现在看起来像:
create or replace table DB.SCHEMA."DESIGN_POLYGONS_STAGING" (geometry VARCHAR);
我在复制到与 polygons.csv.gz 文件相关的暂存表时遇到了更多问题,我一定是在之前的实验中上传了该文件。我使用以下方法删除了这个文件:
remove @~/polygons.csv.gz
最后,将暂存表转换为GEOGRAPHY
create or replace table DB.SCHEMA."DESIGN_GEOGRAPHY_STAGING" (geometry GEOGRAPHY);
insert into DB.SCHEMA."DESIGN_GEOGRAPHY"
select to_geography(geometry)
from DB.SCHEMA."DESIGN_POLYGONS_STAGING"
最后我得到了一个 DESIGN_GEOGRAPHY 表,其中有一列 GEOGRAPHY。成功!!!
关于upload - 如何将多边形从 GeoPandas 上传到 Snowflake?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71150967/
像 MySQL 和 SQL Server 一样使用 Snowflake 创建参数化。需要从 .NET Snowflake .NET Connector 传递值。 https://www.mssqlti
在 snowflake/sql 查询中是否有任何方法可以查看哪些表被查询最多以及哪些列?我想知道哪些数据对我的用户最有值(value),但不确定如何以编程方式执行此操作。任何想法表示赞赏 - 谢谢!
目前我们的项目正在使用 Snowflake DWH。表中定义的列没有任何大小规范。不知道为什么这样做,因为很久以前就这样做了。如果未指定大小时,Snowflake DWH 是否会影响性能。例如,默认情
我在 SAP HANA 中为四分之一函数编写了“选择”查询。 select QUARTER (CURRENT_DATE, 8) FROM DUMMY; output: 2021-Q3 有人可以帮我解决
当我们创建数据库时会创建一个公共(public)模式,如果我们不指定任何模式,则会在公共(public)模式下创建表。如果您在从数据库中删除公共(public)模式时看到或遇到任何问题,能否告诉我,因
我有大约 2.2 GB 数据的大表。当我使用 SELECT * 选择表中的一行时,运行大约需要 14 分钟。有没有办法加快这个查询? 以下是一些可能有用的其他信息: ~ 200 万行 ~ 25k 列
我需要将表恢复到运行 CREATE OR REPLACE 语句之前的状态(即表仍然填充)。 我可以在历史记录中看到 QueryID,但我终生不记得我是如何还原更改的 最佳答案 解决方案已由 Franc
我正在寻找有关如何从现有表生成汇总表或 View 的一些 Snowflake 语法帮助。我的汇总表应该有来自现有表的每个唯一 ID 的 1 行以及指示是否已达到各种里程碑(根据汇总列名称)的 bool
我正在查看 WAREHOUSE_EVENTS_HISTORY,但找不到跟踪仓库大小调整值的方法。 如何从 Snowflake 中获取这些数据? (基于客户问题) 最佳答案 要跟踪调整大小的值,您可以在
我已经创建了单独的过程,当手动运行时使用 2 个日期参数运行。但是我正在尝试编写一个包装程序来顺序调用这些过程。到目前为止我所做的示例代码如下。 CREATE OR REPLACE PROCEDURE
在雪花文档中,我找不到使用索引的引用。 Snowflake 是否支持索引,如果不支持,使用 Snowflake 时性能调优的替代方法是什么? 最佳答案 Snowflake 不支持索引,但它支持“集群”
我们正在考虑将我们的 ODS 从 S3 转移到 Snowflake,但对性能有一些担忧。从 15 亿(这将在较小的一侧)行表中删除 3900 万行在超小型仓库上需要 15 分钟,小型仓库需要 8 分钟
(代表 Snowflake 用户提交) 在 Snowflake 上执行查询时,我需要它的查询 ID。所以我使用以下代码片段: cursor.execute(query, _no_results=Tru
当谈到集群大小时,文档指出,例如一个 XS 集群包含在 1 个服务器上。但是我一直在寻找服务器规范,但似乎找不到有关此主题的任何文档。 最佳答案 对于 AWS 雪花,如果您在 Chrome (F12)
我了解启用集群后,Snowflake 将运行后台任务来自动对您的记录进行集群。在某些情况下,我想重建整个表或使用 insert into select 语句填充新表。当我这样做时,我发现即使我预定义了
我是 SnowFlake 的新手。我在 Snowflake 中创建了一个表。以下是详细信息。 # Created @ 2020-01-07 21:11:20.810 -0800 CREATE TABL
我正在使用 Snowflake,我很惊讶它能够即时调整大小。这是一个非常10s video它如何立即调整大小,并且查询在下次运行时仍然是“热”的(注意我在查询中有一个CURRENT_TIMESTAMP
我需要一些关于雪花存储过程与用户定义函数的最佳用例的指导。请问是否有关于其中一个比另一个更合适的场景的指南?我正在努力为我的项目做出正确的选择。谢谢。 最佳答案 Snowflake 存储过程是用 Ja
我是 SnowFlake 的新手。我在 Snowflake 中创建了一个表。以下是详细信息。 # Created @ 2020-01-07 21:11:20.810 -0800 CREATE TABL
我正在使用 Snowflake,我很惊讶它能够即时调整大小。这是一个非常10s video它如何立即调整大小,并且查询在下次运行时仍然是“热”的(注意我在查询中有一个CURRENT_TIMESTAMP
我是一名优秀的程序员,十分优秀!