上下文:我有一个从SQL DB中提取数据的数据流,当数据来的时候只是一个由制表符分隔的字符串的列,为了正确地操作数据,我试图将每一列与其对应的数据分开:
- 首先,为了正确地“重建”表,我使用了“派生列”活动,将制表符替换为分号(1)
dropLeft(regexReplace(regexReplace(regexReplace(descripcion,
[\t],';'),
[\n],';'),
[\r],';'),1)
- 因此,在此之后使用'split()'函数获取数组并构建列(2)
split(descripcion, ';')
问题:当我尝试使用'Flatten'活动(如这里的https://learn.microsoft.com/en-us/azure/data-factory/data-flow-flatten)时,它不起作用,数据流只抛出一列,或者如果我在'Flatten'活动中添加一个额外的列,我只会得到另一列,其中的数据与第一列相同:
预期输出:
| 栏目2|栏目1|栏目3|
| --------------|--------------|--------------|
| 2000017|ENVASE CORONA CLARA 24/355 ML抓斗|PC13|
| 2004297|ENVASE V FAM GRAB 12/940 ML USADO|公司简介|
你能告诉我我做错了什么吗?谢谢。
1条答案
按热度按时间91zkwejq1#
您可以使用派生列活动本身,尝试如下。
在第一个派生列之后,您拥有的是一个字符串数组,可以使用派生模式修饰符再次拆分。
其中
firstc
表示与您的列descripcion
等效的源列也可以选择需要写入SQL接收器的列