【发布时间】:2016-10-25 15:20:48
【问题描述】:
我正在编写一个 U-SQL 查询,该查询从存储在目录(例如 A)中的文件(例如 query.txt)中提取信息。现在,我想在处理完文件 query.txt 并将一些结果集输出到不同目录中的其他文件后,将文件 query.txt 移动到另一个目录(比如已处理)。完成 U-SQL 作业后,如何将源文件(query.txt)移动到 Processed 目录?
【问题讨论】:
标签: azure-data-lake u-sql
我正在编写一个 U-SQL 查询,该查询从存储在目录(例如 A)中的文件(例如 query.txt)中提取信息。现在,我想在处理完文件 query.txt 并将一些结果集输出到不同目录中的其他文件后,将文件 query.txt 移动到另一个目录(比如已处理)。完成 U-SQL 作业后,如何将源文件(query.txt)移动到 Processed 目录?
【问题讨论】:
标签: azure-data-lake u-sql
您不能将 U-SQL 用于 Data Lake Store 上的文件系统操作。
您可以读取文件并将输出写入已处理的目录,但这只会在新目录中创建该文件的副本,不会删除原始文件。
无法使用 U-SQL 操作移动、删除或复制。 一个好方法是使用 ADLS SDK,这是一个为您编写一个简单的程序。 SDK 提供了此类操作的功能。
【讨论】:
U-SQL 不为您提供文件系统操作。我会研究 SDK ADLS 命令之一(例如,在 Azure Powershell 中),它提供标准的 WebHDFS 文件系统命令以与文件系统交互并使用 Powershell 或 Azure 数据工厂协调作业和文件移动。
【讨论】:
使用 PowerShell
# Log in to your Azure account
Login-AzureRmAccount
$DataLakeStoreAccount = "<yourAccountNameHere>";
$source = "/Before/query.txt";
$Destination = "/After/query.txt";
Move-AzureRmDataLakeStoreItem -AccountName $DataLakeStoreAccount -Path $source -Destination $Destination;
【讨论】: