0

我正在使用 Pentaho 数据集成,我创建了一个新的转换,其中有 2 个步骤....1 是我的数据的 CSV 文件,第二个是包含两列的 Excel 文件,一个是州名,另一个是该州名的排序形式,例如(“纽约”“纽约”)

在我的 CSV 文件中,我有一个州名称为“纽约”的州列,我想使用我的 excel 文件将“纽约”映射到“纽约”

我在谷歌上搜索了一整天都没有明确的答案……有人可以帮忙吗?

4

2 回答 2

0

我建议您使用流查找来完成此任务。检查附加的测试转换。它会完成你的任务。

<?xml version="1.0" encoding="UTF-8"?>
<transformation-steps>
<steps>
  <step>
    <name>EXCEL</name>
    <type>DataGrid</type>
    <description/>
    <distribute>Y</distribute>
    <custom_distribution/>
    <copies>1</copies>
         <partitioning>
           <method>none</method>
           <schema_name/>
           </partitioning>
    <fields>
      <field>
        <name>State</name>
        <type>String</type>
        <format/>
        <currency/>
        <decimal/>
        <group/>
        <length>-1</length>
        <precision>-1</precision>
        <set_empty_string>N</set_empty_string>
      </field>
      <field>
        <name>Short_state</name>
        <type>String</type>
        <format/>
        <currency/>
        <decimal/>
        <group/>
        <length>-1</length>
        <precision>-1</precision>
        <set_empty_string>N</set_empty_string>
      </field>
    </fields>
    <data>
      <line> <item>New York</item><item>TX</item> </line>
      <line> <item>Texas</item><item>TX</item> </line>
    </data>
     <cluster_schema/>
 <remotesteps>   <input>   </input>   <output>   </output> </remotesteps>    <GUI>
      <xloc>392</xloc>
      <yloc>80</yloc>
      <draw>Y</draw>
      </GUI>
    </step>

  <step>
    <name>CSV</name>
    <type>DataGrid</type>
    <description/>
    <distribute>Y</distribute>
    <custom_distribution/>
    <copies>1</copies>
         <partitioning>
           <method>none</method>
           <schema_name/>
           </partitioning>
    <fields>
      <field>
        <name>Full_state_name</name>
        <type>String</type>
        <format/>
        <currency/>
        <decimal/>
        <group/>
        <length>-1</length>
        <precision>-1</precision>
        <set_empty_string>N</set_empty_string>
      </field>
    </fields>
    <data>
      <line> <item>New York</item> </line>
      <line> <item>Texas</item> </line>
    </data>
     <cluster_schema/>
 <remotesteps>   <input>   </input>   <output>   </output> </remotesteps>    <GUI>
      <xloc>511</xloc>
      <yloc>169</yloc>
      <draw>Y</draw>
      </GUI>
    </step>

  <step>
    <name>Stream lookup</name>
    <type>StreamLookup</type>
    <description/>
    <distribute>Y</distribute>
    <custom_distribution/>
    <copies>1</copies>
         <partitioning>
           <method>none</method>
           <schema_name/>
           </partitioning>
    <from>EXCEL</from>
    <input_sorted>N</input_sorted>
    <preserve_memory>Y</preserve_memory>
    <sorted_list>N</sorted_list>
    <integer_pair>N</integer_pair>
    <lookup>
      <key>
        <name>Full_state_name</name>
        <field>State</field>
      </key>
      <value>
        <name>State</name>
        <rename>State</rename>
        <default/>
        <type>String</type>
      </value>
      <value>
        <name>Short_state</name>
        <rename>Short_state</rename>
        <default/>
        <type>String</type>
      </value>
    </lookup>
     <cluster_schema/>
 <remotesteps>   <input>   </input>   <output>   </output> </remotesteps>    <GUI>
      <xloc>510</xloc>
      <yloc>79</yloc>
      <draw>Y</draw>
      </GUI>
    </step>

</steps>
<order>
  <hop> <from>EXCEL</from><to>Stream lookup</to><enabled>Y</enabled> </hop>
  <hop> <from>CSV</from><to>Stream lookup</to><enabled>Y</enabled> </hop>
</order>
<notepads>
</notepads>
<step_error_handling>
</step_error_handling>
</transformation-steps>

于 2016-11-18T14:00:44.063 回答
0

您可以使用合并加入。使用它,您可以合并两个文件并选择所需的列。在合并之前,您必须根据用于映射的字段对这些文件进行排序。在您的情况下,它将是state name.

于 2016-11-18T13:15:48.497 回答