【发布时间】:2018-03-01 05:08:07
【问题描述】:
我的 Azure Data Lake 帐户中有很多 json 文件。它们的组织方式为:存档 -> 文件夹 1 -> JSON 文件。
我想要做的是提取一个特定的字段:从每个 json 中提取时间戳,然后将其放入 csv 文件中。
我的问题是:
我从这个脚本开始:
CREATE ASSEMBLY IF NOT EXISTS [Newtonsoft.Json] FROM "correct_path/Assemblies/JSON/Newtonsoft.Json.dll";
CREATE ASSEMBLY IF NOT EXISTS [Microsoft.Analytics.Samples.Formats] FROM "correct_path/Assemblies/JSON/Microsoft.Analytics.Samples.Formats.dll";
REFERENCE ASSEMBLY [Newtonsoft.Json];
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];
DECLARE @INPUT_FILE string = @"correct_path/Tracking_3e9.json";
//Extract the different properties from the Json file using a JsonExtractor
@json =
EXTRACT Partition string, Custom string
FROM @INPUT_FILE
USING new Microsoft.Analytics.Samples.Formats.Json.JsonExtractor();
OUTPUT @json
TO "correct_path/Output/simple.csv"
USING Outputters.Csv(quoting : false);
-
我得到错误:
E_STORE_USER_FILENOTFOUND:文件未找到或访问被拒绝
但我确实可以访问 Azure 数据湖的数据资源管理器中的文件,那怎么可能呢?
- 我不想为每个文件一个一个地运行它。我只想给它一个文件夹中的所有文件(如 Tracking*.json)或只是一堆文件夹(如 Folder*),它应该通过它们并将每个文件的输出放在输出的单行中csv。
没有找到这方面的教程。
- 现在,我正在读取整个 json,如何只读取一个字段,例如时间戳,它是特定字段中的一个字段,例如 data : {timestamp:"xxx"}?
感谢您的帮助。
【问题讨论】:
标签: azure azure-data-lake u-sql