You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Palantir Foundry代码仓库本地开发:连接Snowflake与Spark会话配置

实现Palantir Foundry本地开发(类似Snowpark模式)

Foundry提供了本地代码开发工具链,可以实现类似Snowpark的本地编写代码、连接Foundry集群运行Spark任务的工作流。以下是具体方案、代码示例及最佳实践:

核心方案概述

Foundry的本地开发依赖Foundry CLI和官方Spark集成库,通过本地环境连接Foundry集群的Spark运行器,实现代码本地编写、远程执行的模式——既保留本地IDE的调试便利性,又能利用Foundry集群的计算资源处理大规模数据。

步骤1:前置准备

  • 安装Foundry CLI:从Foundry控制台下载对应操作系统的CLI工具,安装后执行foundry login完成身份验证。
  • 克隆代码仓库:你已完成此步骤,确保本地代码与Foundry仓库同步。
  • 环境版本对齐:通过foundry code env show查看集群的Spark、Python版本,用pyenv或conda管理本地环境,确保版本匹配。

步骤2:创建Foundry Spark会话(代码示例)

以下是类似Snowpark会话创建的Python代码,用于连接Foundry集群并读取数据集:

import os
from pyspark.sql import SparkSession

def create_foundry_spark_session():
    # 从环境变量或Foundry CLI本地配置读取连接参数
    spark = SparkSession.builder \
        .appName("Local Foundry Dev Session") \
        # Foundry实例域名,如https://your-foundry-instance.com
        .config("spark.foundry.host", os.getenv("FOUNDRY_HOST")) \
        # 通过`foundry token create`生成的临时令牌
        .config("spark.foundry.token", os.getenv("FOUNDRY_TOKEN")) \
        # 目标项目的RID或名称(RID可从项目URL获取)
        .config("spark.foundry.project", os.getenv("FOUNDRY_PROJECT")) \
        .getOrCreate()
    return spark

# 初始化会话
spark = create_foundry_spark_session()

# 读取Foundry数据集(替换为你的数据集路径/RID)
dataset_path = "/your-project-name/datasets/your-dataset-rid"
df = spark.read.format("com.palantir.foundry.spark").load(dataset_path)

# 执行数据操作
df.show(10)

参数说明

  • FOUNDRY_HOST:你的Foundry实例域名(如https://my-foundry.palantir.com)。
  • FOUNDRY_TOKEN:执行foundry token create生成的短期访问令牌,也可通过Foundry CLI自动注入(无需手动配置)。
  • FOUNDRY_PROJECT:项目的RID(可在Foundry项目页面URL中获取)或项目名称。

步骤3:本地运行与调试

  • IDE直接运行:在VS Code、PyCharm等IDE中执行代码,Spark会话会自动连接Foundry集群执行任务。
  • CLI提交运行:执行foundry code run your_script.py,将本地代码提交到Foundry集群运行,适合处理大规模数据。
  • 断点调试:利用IDE的断点功能,在本地调试代码逻辑的同时,借助集群资源处理数据。

最佳实践

  • 安全优先:不要将FOUNDRY_TOKEN硬编码到代码中,使用环境变量或Foundry CLI本地配置(令牌默认存储在~/.foundry/config.yaml)。
  • 数据集本地同步:对频繁调试的小数据集,执行foundry dataset sync <dataset-rid> --local-path ./local-data同步到本地,加快调试速度。
  • 依赖一致性:在requirements.txt中声明依赖,优先使用Foundry集群提供的Spark版本,避免版本冲突。
  • 测试分层:单元测试用本地Spark会话模拟环境;集成测试通过foundry code test提交到集群执行。
  • 代码定期同步:定期执行git push将本地代码推送到Foundry仓库,确保集群代码与本地代码一致。

内容的提问来源于stack exchange,提问作者Luis Trindade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 13:22:10