以下情况:
- 我有一个.csv文件作为输入
- .csv是从工具导出的
- 导出将在row 1,column 1中生成一个“Metadata”条目
- 数据的行标题在row 2中
- 数据从第3行开始
“元数据”具有以下架构:
- 字符串1-字符串2-INT 1/INT 2/INT 3/字符串3-字符串4-字符串5(字符串6)字符串7 *
样品:
| A级|B| C语言|D级|E级|F级|G级|高|一个|J型|K值|左|
| - -|- -|- -|- -|- -|- -|- -|- -|- -|- -|- -|- -|
| “中继数据”||||||||||||
| 标题1|标题2|标题3|标题4|标题5|标题6|标题7|标题8|标题9|标题10|标题11|标题12|
| “数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|
| “数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|
我的目标:
创建数据流:
- 提取“元数据”,用分隔符“/"、“-“、“(“和“)”将其拆分,并使每个部分在派生列和接收器文件名中可用
- 创建三个新列,列标题基于“String 3”、“String 6”和“String 7”
- 基于“元数据”创建动态接收器文件名:* “字符串6”.“字符串7”_“字符串3”.csv*
因此,在最后有一个表,其中列标题来自第2行,数据从第3行开始,三个新列基于“元数据”的部分,以及一个动态文件名基于“元数据”的部分:
- 字符串6.字符串7_字符串3.csv *:
| 标题1|标题2|标题3|标题4|标题5|标题6|标题7|标题8|标题9|标题10|标题11|标题12|“附加列1”|“附加列2”|“其他数据行3”|
| - -|- -|- -|- -|- -|- -|- -|- -|- -|- -|- -|- -|- -|- -|- -|
| “数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“字串3”|“字串6”|“字符串”|
| “数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“数据类型”|“字串3”|“字串6”|“字符串”|
1条答案
按热度按时间olhwl3o21#
更新:
我做了一个测试,它也能解决问题。
这是我的数据源:
我的测试的调试结果如下,它将生成一个csv文件:
1.数据源为csv文件,请不要选择第一行作为标题.
第一行作为表头设置为假:
1.然后,在SurrogateKey1活动中,按如下方式设置值:
指令集
它将添加一个row_no列,以数字加1的形式表示:
1.然后我使用ConditionalSplit1活动将源数据拆分为3种类型的数据流:第一个月
1.在Select1活动中,我只选择
_col0_
,并将其命名为column0
。数据预览如下所示:
指令集
1.然后,我使用DerivedColumn1活动创建3个新列:
数据预览如下:
文件
1.在Select2活动中,我只选择了3个新列。
3个新列的数据预览如下所示:
1.在DerivedColumn2活动中,我创建了FileName列:
concat(ADDITIONALCOLUMN2,'.',ADDITIONALCOLUMN3,'_',ADDITIONALCOLUMN1,'.csv')
数据预览如下:
1.在Join2活动中,我使用了Cutomer(cross),并且Right流是DerivedColumn1,因此我们可以将在DerivedColumn2活动中生成的数据添加到尾部。
数据预览如下所示:
1.在DerivedColumn3活动中,我手动创建了3列(由于接下来将执行Union活动,因此列数必须相同)。
数据预览如下:
1.在Select6活动中,我们可以选择所需的列。
设置如下:
数据预览如下:x1c20日1x
1.然后我们跳转到Join1活动,设置如下:
数据预览如下所示,我们可以看到**Custom(cross)**将在尾部添加我们在DerivedColumn2活动中生成的数据:
指令
1.在Select4活动中,我选择了所有列:
数据预览如下:
13.然后我们跳到Union1活动:
数据预览如下:
指令
1.在Select5活动中(此步骤可以省略,直接跳到sink1活动),我选择了所有列。我们可以跳过此步骤。
1.在sink1 activity.设置如下,它将生成一个具有此名称的csv文件:
数据预览如下:
指令集
就这样了