如何在Azure数据工厂中将txt转换为csv文件

时间:2019-08-27 12:55:08

标签: azure azure-data-lake azure-data-factory-2

我试图在多个第1代Azure数据湖存储实例之间移动文件,而不必求助于编写Azure应用功能或直接调用Azure存储SDK。

这种情况是,我在数据湖1中有一些文本文件,分别为test1.txttest2.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扩展名。

复制后是否可以更改文件扩展名?

1 个答案:

答案 0 :(得分:-1)

您可以在接收器数据集中定义最终结果文件名,如果始终要使用相同的文件名,则可以对其进行硬核化。如果不是这样,它可能会变得更加复杂,因为您将要使用GetMetadata获取每个文件名,然后使用Foreach遍历它们并使用修改后的名称复制每个文件。

希望这对您有帮助!