gpt4 book ai didi

azure - Azure Data Lake 上的 U-SQL 作业出错

转载 作者:行者123 更新时间:2023-12-03 01:44:19 24 4
gpt4 key购买 nike

我的 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);
  1. 我收到错误:

    E_STORE_USER_FILENOTFOUND:找不到文件或访问被拒绝

但我确实可以访问 Azure Data Lake 的数据资源管理器中的文件,那怎么可能呢?

  • 我不想为每个文件一个一个地运行它。我只想给它一个文件夹中的所有文件(如 Tracking*.json)或一堆文件夹(如 Folder*),它应该遍历它们并将每个文件的输出放在输出的单行中.csv。
  • 尚未找到任何相关教程。

  • 现在,我正在读取整个 json,如何只读取一个字段(例如时间戳),该字段是特定字段中的一个字段,例如数据:{timestamp:"xxx"}?
  • 感谢您的帮助。

    最佳答案

    1)不确定为什么在没有更多信息的情况下会遇到该错误 - 您是特别缺少输入文件还是程序集?

    2) 您可以使用文件集从一组文件中提取数据。只需使用 {} 来表示输入字符串中的通配符,然后将该字符保存在新列中。例如,您的输入字符串可能是 @"Correct_path/{day}/{hour}/{id}.json",然后您的提取语句将变为:

        EXTRACT
    column1 string,
    column2 string,
    day int,
    hour int,
    id int
    FROM @input

    3) 您必须读取 SELECT 语句中的整个 JSON,但您可以将其细化为仅包含 future 行集中所需的行。例如:

        @refine=
    SELECT timestamp FROM @json;

    OUTPUT @refine
    ...

    听起来您的一些 JSON 数据是嵌套的(例如时间戳字段)。您可以在我们的 GitHub ( Using the JSON UDFs ) 和 this blog 中找到信息。了解如何读取嵌套的 JSON 数据。
    希望这对您有所帮助,如果您还有其他问题,请告诉我!

    关于azure - Azure Data Lake 上的 U-SQL 作业出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49042971/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com