首页 > 解决方案 > 如何在 palantir Foundry 中使用 transform_df 写回数据帧?

问题描述

我创建了一个库来更新输入数据集列的描述。该函数将三个参数作为输入(input_dataset、output_dataset、配置文件)并最终写回输出数据集的描述。所以现在我们想在各种用例中导入这个库。如何处理我们正在编写 spark 转换的情况,即通过 transform_df 获取输入,因为这里我们不能将输出分配给输出变量。在那种情况下,我如何调用我的描述库函数?在 palantir 代工厂中如何处理这些情况。有什么建议么?

标签: pysparkpalantir-foundryfoundry-code-repositories

解决方案


@transform_df装饰器目前不支持此方法;你现在必须使用@transform装饰器。

这背后的原因是认识到需要更广泛地访问元数据 API,比如@transform装饰器已经允许的。因此,将其保留在那里似乎更符合这种模式,因为@transform_df装饰器本质上是更高级别的。

您总是可以简单地从...转移您的转换

from transforms.api import transform_df, Input, Output


@transform_df(
  Output("/my/output"),
  my_input("/my/input"),
)
def my_compute_function(my_input):
  df = my_input
  # ... logic ....
  return my_input

...至...

from transforms.api import transform, Input, Output


@transform(
  my_output=Output("/my/output"),
  my_input=Input("/my/input")
)
def my_compute_function(my_input, my_output):
  df = my_input.dataframe()
  # ... logic ....
  my_output.write_dataframe(df)

...其中只需要更改 6 行代码。


推荐阅读