【问题标题】:is it possible to generate pdf from datasets and save to foundry incrementally是否可以从数据集生成pdf并逐步保存到铸造厂
【发布时间】:2025-12-15 08:00:01
【问题描述】:

FPDF 是一个库,允许将 pandas 数据框转换为格式良好的 pdf 报告。 Foundry 代码仓库或代码工作簿中是否有将 pdf 文件从 spark 或 pandas 数据帧写入到 Foundry 的功能?

我需要从筛选到几行的铸造数据集创建格式良好的 pdf 报告。

在用户 https://*.com/users/4922673/jackfischer 的帮助下,我能够满足要求, 但是代码会覆盖现有文件,如何在每次运行代码时使用新文件增量更新数据集。 我正在使用代码工作簿模板功能将参数传递给逻辑,每次传递新参数时,逻辑如何创建新文件

示例:

  1. samplefile.txt
  2. samplefile2.txt

【问题讨论】:

    标签: palantir-foundry foundry-code-repositories foundry-code-workbooks


    【解决方案1】:

    虽然我不特别熟悉 FPDF 库,但 Foundry 支持从转换或代码工作簿中的数据集生成文件。

    要从您的数据集创建单个基于 Pandas 的 PDF,请将您的数据集转换为 Pandas 并从 Foundry 获取输出文件句柄,例如。在代码工作簿中,

    def pdf_dataset(input_df):
        output = Transforms.get_output()
        pd = input_df.toPandas()
        output_fs = output.filesystem()
            with output_fs.open(output_file_path, "wb") as f:
                # use FDPF as needed
    

    或者,您可以通过 Spark 并行创建每行的 PDF。这可以通过结构化数据来最轻松地完成,这样生成每个 PDF 所需的参数都位于行中,然后您可以从那里运行 Python 函数来生成 PDF 并将其从 Python 内存中写入目标数据集。

    在代码工作簿中,这类似于

    def pdf_dataset(input_df):
        output = Transforms.get_output()
    
        def generate_pdf(row):
            output_fs = output.filesystem()
            with output_fs.open(output_file_path, "wb") as f:
                # use FDPF as needed
                
        input_df.rdd.foreach(generate_pdf)
    
    

    【讨论】:

    • 谢谢你,它就像你提到的那样工作,我用代码工作簿中的示例文本文件测试了第一行代码。我将其转换为模板,但每次使用新参数运行代码时,现有文件都会被覆盖,我该如何继续添加新文件?
    • 尝试以下组合: 1. 使您的计算增量。您可能需要为此使用代码存储库(而不是代码工作簿)。有一个迁移功能可以将您的代码从 CWB 移动到 CR。在您的情况下,将 incremental() 装饰器添加到您的转换中就足够了。 2. 根据构建时的当前时间戳添加一个变量,并在您正在创建的 PDF 的文件名中使用它。然后每次构建运行时,您都会获得不同的文件输出。
    最近更新 更多