Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Pentaho数据集成中,按字段名而不是位置读取CSV输入文件_Pentaho_Pentaho Spoon_Pentaho Data Integration - Fatal编程技术网

在Pentaho数据集成中,按字段名而不是位置读取CSV输入文件

在Pentaho数据集成中,按字段名而不是位置读取CSV输入文件,pentaho,pentaho-spoon,pentaho-data-integration,Pentaho,Pentaho Spoon,Pentaho Data Integration,我有一个包含四个字段的CSV文件: FIELD_A, FIELD_B, FIELD_C, FIELD_D 1, 2, 3, 4 5, 6, 7, 8 我还在PDI中创建了一个转换,该转换有一个读取CSV输入文件步骤和一个在数据库表中插入值的后续步骤 这很好,但是我可能会在输入文件中获得其他组合(恕不另行通知),例如: FIELD_A, FIELD_B, FIELD_D 1, 2, 4 5, 6, 8 我假设PDI足够智能,可以按名称映射字段,并根据列标题的位置发送到下一步字段A、字段B等等。

我有一个包含四个字段的CSV文件:

FIELD_A, FIELD_B, FIELD_C, FIELD_D
1, 2, 3, 4
5, 6, 7, 8
我还在PDI中创建了一个转换,该转换有一个读取CSV输入文件步骤和一个在数据库表中插入值的后续步骤

这很好,但是我可能会在输入文件中获得其他组合(恕不另行通知),例如:

FIELD_A, FIELD_B, FIELD_D
1, 2, 4
5, 6, 8
我假设PDI足够智能,可以按名称映射字段,并根据列标题的位置发送到下一步字段A、字段B等等。相反,它获取文件中的前三个字段,并将它们映射到步骤中的前三个字段。结果,我在字段C中得到字段D的值


有没有办法通过字段名而不是位置来进行转换映射?我无法在每次收到输入字段时更改转换。

有很多方法可以做到这一点。在插入数据库之前使用“选择值”步骤是一种简单的方法。您可以从中找到示例转换。在“CSV文件输入”中,您可以首先调用带有4个字段的文件,然后可以调用带有3个字段的文件进行测试。
让我知道是否可以。有很多方法可以做到这一点。在插入数据库之前使用“选择值”步骤是一种简单的方法。您可以从中找到示例转换。在“CSV文件输入”中,您可以首先调用带有4个字段的文件,然后可以调用带有3个字段的文件进行测试。
让我知道它是否正常。

您还可以选择将元数据注入转换以读取CSV文件并插入表中。
首先创建一个转换以读取CSV文件中存在的列(仅读取带有列标题的CSV的第一行)然后将该信息注入转换中的读取CSV步骤和输出表步骤。

您还可以选择将元数据注入转换,以读取CSV文件并插入表中。
首先创建一个转换以读取CSV文件中存在的列(仅读取带有列标题的CSV的第一行),然后将该信息注入转换中的读取CSV步骤和输出表步骤。

谢谢您的回答。我的问题是在“CSV文件输入”步骤中,您所说的“使用4个字段调用文件”是什么意思?请注意,在实际场景中,我有200个字段。是的,首先您需要准备文件的“CSV文件输入”步骤(最多有200个字段)并完成“选择值”步骤。在此之后,如果您发现csv文件的字段少于200个,则在“选择值”步骤中,字段值将自动返回为null。和匹配的文件名将返回预期值。或者,您可以共享您迄今为止尝试的转换,这是一个读取csv文件的步骤,也是一个将字段写入数据库的步骤。文件中的字段可能以任意顺序出现,有时某些字段会丢失。我如何添加“选定值”步骤?您可以从我已测试并发现其工作状态中找到更新的转换。谢谢您的回答。我的问题是在“CSV文件输入”步骤中,您所说的“使用4个字段调用文件”是什么意思?请注意,在实际场景中,我有200个字段。是的,首先您需要准备文件的“CSV文件输入”步骤(最多有200个字段)并完成“选择值”步骤。在此之后,如果您发现csv文件的字段少于200个,则在“选择值”步骤中,字段值将自动返回为null。和匹配的文件名将返回预期值。或者,您可以共享您迄今为止尝试的转换,这是一个读取csv文件的步骤,也是一个将字段写入数据库的步骤。文件中的字段可能以任意顺序出现,有时某些字段会丢失。如何添加“Selected Values”(选定值)步骤?您可以从我已测试并发现其工作状态中找到更新的转换。嗨,Ana,假设我通过读取文件以某种方式获得列列表,如何将其注入到读取CSV步骤?我还发现动态创建转换,首先读取列列表,这是最新版本的Pentaho官方文档(尽管在过去的版本中工作方式相同,但在每个版本中,他们都添加了支持元数据注入的步骤和字段:此外,在PDI安装中,您有一个示例目录,其中包含常用步骤的使用示例,在samples/transformations/meta-inject中,您有一个关于如何使用元数据注入读取元数据的示例。)CSV文件。嗨,安娜,假设我通过读取文件以某种方式获得列列表,我如何将其注入到读取CSV步骤?我还发现动态创建转换,首先读取列列表。这是最新版本的官方Pentaho文档(尽管在过去的版本中工作方式相同,但在每个版本中,他们都添加了支持元数据注入的步骤和字段:此外,在PDI安装中,您有一个示例目录,其中包含常用步骤的使用示例,在samples/transformations/meta-inject中,您有一个关于如何使用元数据注入读取元数据的示例。)CSV文件。