Snowflake SnowPark Python - 说明

joh*_*son 2 python-3.x snowflake-cloud-data-platform snowpark

有一些关于使用 Python 进行 SnowPark 的问题。

  1. 当我们已经有了 Snowflake python 连接器(免费)可以使用 Snowflake DW 连接到 Python jupyter 时,为什么还需要 Snowpark?

  2. 如果我们使用snowpark并连接本地jupyter文件来运行ML模型。是用我们本地机器算力还是Snowflake算力?如果是我们本地机器算力我们怎么用Snowflake算力来运行ml模型呢?

Mik*_*ton 7

  1. Snowpark with Python 允许您像 Spark DF 一样处理 Snowflake 表。这意味着您可以针对 Snowflake 表运行 pyspark 代码,而无需从 Snowflake 中提取数据,并且计算是 Snowflake 计算,而不是完全弹性的本地计算机。
  2. 只要您在 python 中执行 Spark 数据帧逻辑,计算就会在 Snowflake 端进行。如果您将该数据拉回您的计算机以执行其他逻辑(例如 pandas),那么 Snowpark 会将数据拉回您的本地计算机,并且计算将正常进行。

我建议从这里开始了解更多信息:

https://docs.snowflake.com/en/developer-guide/snowpark/index.html


小智 5

需要记住的几件事是,我们在这里讨论的是多件事,如果进行一些澄清可能会更好。

Snowpark 是一个通过 pip/conda 安装的库,它是一个数据帧库,这意味着您将能够定义一个指向 Snowflake 中数据的数据帧对象(也有方法使用它将数据导入到 Snowflake 中)。它不会将数据拉回客户端,除非您也明确告诉它,并且所有计算都在 Snowflake 端完成。

当您对 Snowpark 数据框执行操作时,您使用的 Python 代码将生成在 Snowflake 中执行的 SQL,使用与编写自己的 SQL 相同的机制。生成的SQL的执行由.show()、.collect()、save_as_table()等action方法触发。

更多信息请点击此处

作为 Snowflake Python 支持的一部分,还有 Python UDF 和 Python 存储过程,您不需要 Snowpark 来创建或使用它们,因为您可以使用 CREATE FUNCTION/CREATE STORED PROCEDURE 通过 SQL 来完成此操作,但您也可以使用 Snowpark。

使用Python UDF和Python存储过程,您可以将Python代码引入Snowflake中,该代码将在Snowflake计算上执行,它不会被转换为SQL,但会使用在计算节点上运行的Python沙箱。

为了使用 Python 存储过程或 Python UDF,您无需执行任何操作,它就像 Snowflake 的任何其他内置功能一样。

有关Python UDF 的更多信息以及有关Python 存储过程的信息。

Snowflake Python 连接器允许您编写在 Snowflake 上执行的 SQL,并将结果拉回到客户端以便在客户端使用,使用客户端内存等。如果您希望在 Snowflake 中执行操作,则需要编写 SQL为了它。