SuperAPI AI 工具集

spark-migration

数据与分析

查看项目

更新于 10-16 05:46

技能介绍

用途:将 Spark 脚本与 Notebook 迁移到 Snowflake。该技能本身是薄路由层,负责跨路径配置、意图分类与逐步分发,实际转换由内置子技能完成。

主要能力:默认路径为 Snowpark Connect(SCOS),保留 PySpark API 写法(如 withColumn、groupBy、spark.createDataFrame),适用于绝大多数用户。仅当用户明确提到 SMA、SMA CLI、run sma、Snowpark API、snowflake.snowpark,或已有 conversion_type 为 snowpark-api 的项目配置时,才路由到 snowpark-api 路径。意图不明确时应询问用户,不得静默默认到 SMA 路径。

部署路径:可将迁移产物部署到 Snowflake。Notebook 目标走 deploy-notebook,上传项目(.ipynb 主文件及附属文件)到 stage 并创建 Notebook;代码包目标走 deploy-code-bundle,生成入口、写 code_bundle.yml、上传 .py 项目到 stage 并创建 Code Bundle。

使用方式:启动时先做前置检查,用 git --version 检查 Git,缺失时按平台安装(如 brew install git、sudo apt-get install -y git、sudo yum install -y git、winget install --id Git.Git)。仅 snowpark-api 路径需检查 SMA CLI,用 which sma 或 find 定位,找到后通过 config_manager.py save-global 保存 sma_cli_path。随后加载全局配置、列出或创建项目配置(项目名、源码路径、输出目录、客户邮箱、公司),审阅 18 项设置,再按 migration_status 与 conversion_type 路由。已迁移流程需校验输出目录下 Output 与 Reports 是否存在。

限制:子技能(snowpark-connect、snowpark-api、deploy-notebook、deploy-code-bundle、snowflake-notebook-migration)内置于本技能目录,不在技能注册表中,需按相对路径读取 SKILL.md,缺失时应停止并提示重装,不得回退到注册表查找。进度 UI 为实验性功能,默认关闭,仅在用户明确要求且为完整迁移时启动。每个步骤需以 [YYYY-MM-DD HH:MM:SS] 时间戳前缀输出,最终摘要须使用当前路径自带的模板。