azure - Azure 数据工厂:来自输入数据集文件夹名称的输出数据集文件名
问题描述
我正在尝试解决 Azure 数据工厂中的以下场景:
我在 Azure Blob 存储中有大量文件夹。每个文件夹包含不同数量的镶木地板格式的文件。文件夹名称包含生成文件夹中包含的数据的日期,如下所示:DATE=2021-01-01。我需要过滤文件并将它们以分隔格式保存到另一个容器中,并且每个文件的文件名中都应包含源文件夹名称中指示的日期。
所以当我的输入看起来像这样时......
DATE=2021-01-01/
data-file-001.parquet
data-file-002.parquet
data-file-003.parquet
DATE=2021-01-02/
data-file-001.parquet
data-file-002.parquet
...我的输出应该是这样的:
output-data/
data_2021-01-01_1.csv
data_2021-01-01_2.csv
data_2021-01-01_3.csv
data_2021-01-02_1.csv
data_2021-01-02_2.csv
从子文件夹中读取文件并过滤它们并保存它们很容易。当我尝试动态设置输出数据集文件名时,问题就开始了。我可以使用 Get Metadata 活动获取文件夹名称,然后可以使用 ForEach 活动将它们设置为变量。但是,我无法弄清楚如何在过滤数据流汇数据集时使用此变量。
解决方案
更新:
我的Get Metadata1活动,将容器设置input
为:
将容器设置input
如下:
我的调试信息如下:
我想我已经找到了解决方案。例如,我正在使用 csv 文件。
我的输入看起来像这样
container:input
2021-01-01/
data-file-001.csv
data-file-002.csv
data-file-003.csv
2021-01-02/
data-file-001.csv
data-file-002.csv
然后我们可以通过处理这个列来得到我们想要的文件名
DerivedColumn1
。添加了表达式concat('data_',substring(File_Name,2,10),'_',split(File_Name,'-')[5])
。
就这样。
推荐阅读
- c++ - 使用模板函数初始化 constexpr 数组
- android - 如何修复出现在底部导航活动下方的片段?
- c - 阻塞与非阻塞 I/O 缓冲?
- java - 如何在spring data jpa中为自定义采石场提供可变参数而不使用for循环
- java - 根据目标日期查找最近的 startDate 和 endDate 的最佳方法
- python - 加盟产楠
- ruby-on-rails - 将activerecord保存在DB上时,如何使Rails使用属性的getter方法?
- mysql - 从列创建对而不重复值
- c# - 如何根据另一个列表中一个属性的所有值过滤 linq 查询
- javascript - 如何访问不同 js 文件中的用户对象