我试图在多个第1代Azure数据湖存储实例之间移动文件,而不必求助于编写Azure应用功能或直接调用Azure存储SDK。
这种情况是,我在数据湖1中有一些文本文件,分别为test1.txt
和test2.txt
。它们都是带有制表符作为分隔符的文件。当我尝试将复制活动以.csv
作为扩展名使用时,文件确实移至数据湖2,但保留了.txt
个文件。
复制活动源和接收器如下所示:
{
"typeProperties": {
"source": {
"type": "DelimitedTextSource",
"storeSettings": {
"type": "AzureDataLakeStoreReadSettings",
"recursive": true,
"wildcardFileName": "*.*",
"enablePartitionDiscovery": false
},
"formatSettings": {
"type": "DelimitedTextReadSettings"
}
},
"sink": {
"type": "DelimitedTextSink",
"storeSettings": {
"type": "AzureDataLakeStoreWriteSettings"
},
"formatSettings": {
"type": "DelimitedTextWriteSettings",
"quoteAllText": true,
"fileExtension": ".csv"
}
}
}
}
我也尝试过复制到Blob容器,但是仍然存在相同的问题:文件保留其.txt
扩展名。
复制后是否可以更改文件扩展名?
答案 0 :(得分:-1)
您可以在接收器数据集中定义最终结果文件名,如果始终要使用相同的文件名,则可以对其进行硬核化。如果不是这样,它可能会变得更加复杂,因为您将要使用GetMetadata获取每个文件名,然后使用Foreach遍历它们并使用修改后的名称复制每个文件。
希望这对您有帮助!