【发布时间】:2020-07-14 10:16:22
【问题描述】:
我正在 ADF 中设置一个数据流,该数据流将 Azure 表数据集作为源,添加一个派生列,该列根据源架构中的数据字段添加一个名为“文件名”的列和一个动态值。
然后将输出发送到连接到附加到 Blob 存储(尝试 ADLS Gen2 和标准 Blob 存储)的 DataSet 的接收器。
但是,在执行管道之后,我没有在容器中找到多个文件,而是看到创建了名称为 filename=ABC123.csv 的文件夹,这些文件夹本身包含其他文件(这让我想到了镶木地板文件):
- filename=ABC123.csv
+ _started_UNIQUEID
+ part-00000-tid-UNIQUEID-guids.c000.csv
所以,我显然遗漏了一些东西,因为我需要在数据集容器中列出具有我在管道中指定的名称的单个文件。
这是流水线的代码(不过有些部分被删掉了):
source(output(
PartitionKey as string,
RowKey as string,
Timestamp as string,
DeviceId as string,
SensorValue as double
),
allowSchemaDrift: true,
validateSchema: false,
inferDriftedColumnTypes: true) ~> devicetable
devicetable derive(filename = Isin + '.csv') ~> setoutputfilename
setoutputfilename sink(allowSchemaDrift: true,
validateSchema: false,
rowUrlColumn:'filename',
mapColumn(
RowKey,
Timestamp,
DeviceId,
SensorValue
),
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> distributetofiles
有什么建议或提示吗? (我对 ADF 比较陌生,所以请耐心等待)
【问题讨论】:
-
您能分享一下 Sink 的“设置”和“优化”选项卡的屏幕截图吗?有很多选项可以管理输出文件。
-
@JoelCochran,谢谢回复。我用两张截图更新了上面的描述
-
@Sam Vanhoutte 看起来你在 stackoverflow.com/questions/66775452/… 之前就这样做过