- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在代码库中用 Python 组合多个数据集时,我想将数据集名称放在第一列。但是我无法通过访问它的路径来弄清楚
@transform_df(
Output("/folder/folder1/datasets/mydatset"),
df1 = Input("A"),
df2 = Input("B"),
)
def compute(df1, df2, df3):
print(list(filter(os.path.isfile, os.listdir())))
如何从转换中获取我的数据集名称?
最佳答案
使用 @transform_df
装饰器是不可能的。然而,可以使用更强大的 @transform
装饰器。
API Documentation for @transform
使用 @transform
将导致您的函数参数变为 TransformInput
类型,而不是直接具有属性 path
的数据帧。请注意,在使用 @transform
时,您还需要手动引用和写入输出数据集。
例如:
@transform(
out=Output("/path/to/my/output"),
inp1=Input("/path/to/my/input1"),
inp2=Input("/path/to/my/input2"),
)
def compute(out, inp1, inp2):
# Add columns containing dataset paths.
df1 = inp1.dataframe().withColumn("dataset_path", F.lit(inp1.path))
df2 = inp2.dataframe().withColumn("dataset_path", F.lit(inp2.path))
# For example.
result = union_many(df1, df2, how="strict")
# Write output manually
out.write_dataframe(result)
但是请注意,数据集的路径是一个不稳定的标识符。如果有人要移动或重命名这些输入,可能会在您的管道中导致意外行为。
因此,对于生产流水线,我通常建议使用更稳定的标识符。要么是手动选择的硬编码(在这种情况下,您可以再次使用 @transform_df
):
@transform_df(
df1=Input("/path/to/my/input1"),
df2=Input("/path/to/my/input2"),
)
def compute(df1, df2):
df1 = df1.withColumn("input_dataset", F.lit("input_1"))
df2 = df2.withColumn("input_dataset", F.lit("input_2"))
# ...etc
或数据集的 RID,使用 inp1.rid
而不是 inp1.path
。
请注意,如果您有大量输入,所有这些方法都可以使用 python 的可变参数语法和推导式变得更简洁:
# Using path or rid
@transform(
out=Output("/path/to/my/output"),
inp1=Input("/path/to/my/input1"),
inp2=Input("/path/to/my/input2"),
# and many more...
)
def compute(out, **inps):
# Add columns containing dataset rids (or paths).
dfs = [
inp.dataframe().withColumn("dataset_rid", F.lit(inp.rid))
for key, inp in inps.items()
]
# For example
result = union_many(*dfs, how="strict")
out.write_dataframe(result)
# Using manual keys, we can reuse the argument names as keys.
@transform_df(
Output("/path/to/my/output"),
df1=Input("/path/to/my/input1"),
df2=Input("/path/to/my/input2"),
# and many more...
)
def compute(**dfs):
# Add columns containing dataset keys.
dfs = [
df.withColumn("dataset_key", F.lit(key))
for key, df in dfs.items()
]
# For example
return union_many(*dfs, how="strict")
关于palantir-foundry - 如何在代码存储库中获取数据集的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72758260/
我有一个文件夹,我会每月上传一个文件。该文件每个月的格式都相同。 第一个问题 想法是将此文件夹中的所有文件连接成一个文件。目前我正在对文件名进行硬编码(文件名[0]、文件名[1]、文件名[2]..),
我的 Foundry 实例中有一个使用增量计算的管道设置,但由于某种原因没有达到我的预期。即,我想读取我的转换的先前输出并获取日期的最大值,然后仅在此最大日期之后立即读取数据的输入。 出于某种原因,它
我有一个由对象支持的 Foundry Form,能够对其进行更改。我需要授予我的同事什么权限才能编辑表单?表单上的编辑器是否足够,或者他们是否还需要成为对象的编辑器? 最佳答案 要创建表单,您需要在表
我想使用本体函数(又名 FoO)修改对象的数组属性,但我看到以下错误: [typescript] Property 'push' does not exist on type 'readonly st
我有一个 PySpark 模式,它描述了数据集的列及其类型(我可以手写,或者通过转到“列”选项卡,然后“复制 PySpark 模式”从现有数据集中获取)。 我想要一个具有此模式的空数据集,例如,它可以
谁能解释一下为什么我们需要分别使用 transform 和 transform_df 方法? 最佳答案 代码存储库中的@transform 和@transform_df 装饰器之间存在细微差别: @t
我需要读取输出中已有的数据并将数据加入输入并将数据写回同一输出。每天都会安排此构建。 输入: 身份证刷新日期12022/6/822022/6/832022/6/8 历史(输出): 身份证订购日期订单关
在 Ontology Editor 中,当我尝试删除属性时收到警告。见下图。 我想在不丢失编辑内容的情况下保留对象的其他列或属性。 这可能吗?这样做有什么要求? 最佳答案 有几种方法可以实现这一点。在
我在 Workshop 中创建一个条形图,然后按列分割。此列的值为"is"和“否”。 目前条形图在上半部分显示"is",在下半部分显示“否”。我想切换值并在条形图的上部显示“否”。可能吗?提前致谢!
我的数据集有 20000 个文件,每个文件都很小。我将如何减少文件数量以及最佳数量是多少? 最佳答案 最直接的方法是在转型结束。 这需要是您返回/写出结果之前的最后一次通话。 这看起来像: # ...
在代码库中用 Python 组合多个数据集时,我想将数据集名称放在第一列。但是我无法通过访问它的路径来弄清楚 @transform_df( Output("/folder/folder1/da
在 Ontology 管理应用程序中创建新对象类型时,它会要求提供支持数据集。有没有一种方法可以在没有支持数据集的情况下创建对象类型? 最佳答案 目前没有。为确保正确保护对对象数据的访问,支持数据集用
我想将意外修改的工作簿恢复到以前的版本。 最佳答案 无法将代码工作簿恢复到以前的版本。通过您的客户支持 channel 联系以获取更多信息。 如果您使用代码工作簿构建数据管道,请考虑使用代码工作簿模板
我有一个每天提供一个大 .txt 文件 (50-75GB) 的数据馈送。该文件包含几个不同的模式,其中每一行对应一个模式。我想将其拆分为每个模式的分区数据集,我该如何有效地做到这一点? 最佳答案 您需
我有一个创建两个数据集的数据连接源: 数据集 X(快照) 数据集 Y(增量) 这两个数据集来自同一个来源。数据集 X包含源表中所有行的当前状态。数据集 Y拉取自上次构建以来已更新的所有行。然后将这两个
我在 Foundry 有两个数据集: df1 & df2, df1 具有带架构的数据。 df2 是没有应用架构的空数据帧。 使用数据代理,我能够从 df1 中提取模式 { "foundrySche
我想采用任意一组模式并将它们组合成一个数据集,以后可以取消透视。最稳定的方法是什么? 假设我有数十个具有不同架构的输入。这些都有不同的列,实际上意味着相同的东西,它们只是没有相同的名称。 修复列名称后
本文整理了Java中com.palantir.lock.v2.WaitForLocksRequest类的一些代码示例,展示了WaitForLocksRequest类的具体用法。这些代码示例主要来源于G
本文整理了Java中com.palantir.gradle.circlestyle.XmlReportFailuresSupplier类的一些代码示例,展示了XmlReportFailuresSupp
本文整理了Java中com.palantir.gradle.circlestyle.XmlUtils类的一些代码示例,展示了XmlUtils类的具体用法。这些代码示例主要来源于Github/Stack
我是一名优秀的程序员,十分优秀!