如何在Palantir Foundry中使用相同的模式联合多个数据集?



我有几个数据集,我想在Palantir铸造联合。我提前知道数据集是什么。所有数据集的模式是相同的(即它们具有相同的列名和列类型)。

组合(union)这些数据集的最佳方法是什么?

数据集:

<表类>col1col2tbody><<tr>12b

您可以使用数据集视图。数据集视图是一个Palantir Foundry数据集,它不包含任何包含数据的文件,但在读取时由其他数据集(称为备份数据集)的联合组成。这意味着构建视图非常快,并且视图是有效的空间,因为它们不复制数据。

创建视图:

  1. 浏览到你想创建视图
  2. 点击绿色的+ New按钮,在下拉菜单中选择'View'
  3. 在新创建的视图中,查看"Details"选项卡。
  4. 单击+ Add backing dataset按钮并添加您想要合并的数据集

您可以使用视图,就好像它是数据集联合的结果。例如,您可以将其用作轮廓分析的底层数据集或支持本体对象。

关于Views的更多文档可以在Foundry平台内文档中找到,通过搜索'Views'产品。

要在Python转换中使用Foundry Code Repositories或Code Workbook中的两个数据集,您可以使用PySpark的unionByName函数:

from transforms.api import transform_df, Input, Output
@transform_df(
Output("/path/to/dataset/unioned"),
source_df_1=Input("/path/to/dataset/one"),
source_df_2=Input("/path/to/dataset/two"),
)
def compute(source_df_1, source_df_2):
return source_df_1.unionByName(source_df_2)

要在Python转换中使用Foundry Code Repositories或Code Workbook中的多个数据集,您可以使用转换动词帮助器D.union_many:

from transforms.api import transform_df, Input, Output
from transforms.verbs import dataframes as D
@transform_df(
Output("/path/to/dataset/unioned"),
source_df_1=Input("/path/to/dataset/one"),
source_df_2=Input("/path/to/dataset/two"),
source_df_3=Input("/path/to/dataset/three"),
)
def compute(source_df_1, source_df_2, source_df_3):
return D.union_many(
source_df_1,
source_df_2,
source_df_3,
)

最新更新