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

Palantir Foundry能否获取上传表格最后更新用户并添加至历史数据集?

Palantir Foundry 快照上传表格相关操作方案

一、基于快照上传表格创建带用户信息的历史数据集

要实现这个需求,结合Foundry的数据集快照功能和Python变换即可完成:

  • 先开启上传表格的版本历史:进入数据集设置页面,开启「版本历史记录」,确保每次上传操作都会生成新的快照版本。
  • 编写Python变换,将快照数据与上传用户信息合并:
    1. 通过with_snapshots()获取上传表格的所有快照
    2. 遍历每个快照,提取元数据中的created_by字段(包含用户ID和显示名)
    3. 将用户信息作为新增列添加到快照数据中
    4. 合并所有快照数据,写入到目标历史数据集

示例变换代码:

from transforms.api import transform, Input, Output
from pyspark.sql import functions as F

@transform(
    output=Output("/your/historical-dataset-path"),
    input_snapshots=Input("/your/uploaded-table-path").with_snapshots()
)
def build_historical_dataset(ctx, input_snapshots, output):
    snapshots = input_snapshots.get_snapshots()
    processed_dfs = []
    for snapshot in snapshots:
        # 读取当前快照的数据
        raw_df = snapshot.dataframe()
        # 提取快照创建用户信息
        uploader = snapshot.metadata.created_by
        # 添加用户字段和快照时间戳
        enriched_df = raw_df.withColumn("upload_user_id", F.lit(uploader.user_id)) \
                           .withColumn("upload_user_name", F.lit(uploader.display_name)) \
                           .withColumn("snapshot_creation_time", F.lit(snapshot.metadata.timestamp))
        processed_dfs.append(enriched_df)
    # 合并所有快照数据并输出
    if processed_dfs:
        final_historical_df = processed_dfs[0].unionAll(processed_dfs[1:])
        output.write_dataframe(final_historical_df)

二、检索上传表格的最后更新用户

有两种可行方式:

1. UI界面直接查看

进入上传表格的数据集页面,点击右上角的「版本历史」,最新版本条目里会显示该版本的创建者,也就是最后完成上传操作的用户。

2. 通过变换或API获取

  • 变换方式:编写简单的Python变换,读取最新快照的元数据即可获取用户信息:
from transforms.api import transform, Input, Output
from pyspark.sql import functions as F

@transform(
    output=Output("/your/latest-uploader-info-path"),
    input_dataset=Input("/your/uploaded-table-path")
)
def get_latest_uploader(ctx, input_dataset, output):
    # 获取最新快照
    latest_snapshot = input_dataset.get_snapshots()[-1]
    uploader = latest_snapshot.metadata.created_by
    # 创建包含用户信息的结果表
    result_df = ctx.spark_session.createDataFrame(
        [(uploader.user_id, uploader.display_name)],
        ["latest_upload_user_id", "latest_upload_user_name"]
    )
    output.write_dataframe(result_df)
  • API方式:调用Foundry的REST API /api/v1/datasets/{datasetRid}/snapshots/latest,响应中的createdBy字段包含最后更新用户的详细信息。

内容的提问来源于stack exchange,提问作者Matheus Spósito de Oliveira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 14:55:32