gpt4 book ai didi

azure - 如何从azure数据湖读取行分隔的json文件并使用usql进行查询

转载 作者:行者123 更新时间:2023-12-03 01:40:41 28 4
gpt4 key购买 nike

我在 azure datalake 结构中的物联网数据为 {date}/{month}/{day}/abbs。杰森每个文件都有多个记录,以换行符分隔..如何使用 usql 读取这些数据并加载到表和查询中。

当我使用////.json 将其加载到 usql 表中时,当新文件添加到文件中时,会将数据加载到同一个表中。

我已关注 qzure 文档,但没有找到行分隔 json 文件的任何答案。

最佳答案

在此示例中,我们将创建一个表来存储事件:

CREATE TABLE dbo.Events  
(
Event string
,INDEX cIX_EVENT CLUSTERED(Event ASC) DISTRIBUTED BY HASH(Event)
);

然后提取 json 并将其插入数据库时​​:

您首先必须使用简单的文本提取器提取行,然后才能解析它。例如,给出一个包含以换行符分隔的 json 对象的文件

{ "Event": "One" }
{ "Event": "Tow" }
{ "Event": "Three"}

然后这个脚本将提取事件:

REFERENCE ASSEMBLY [Newtonsoft.Json];
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];

USING Microsoft.Analytics.Samples.Formats.Json;

@RawExtract = EXTRACT [RawString] string
FROM @input
USING Extractors.Text(delimiter:'\b', quoting : false);

@ParsedJSONLines = SELECT JsonFunctions.JsonTuple([RawString]) AS JSONLine
FROM @RawExtract;

INSERT INTO Events
SELECT JSONLine["Event"] AS Event
FROM @ParsedJSONLines;

稍后您可以从表中读取如下内容:

@result =
SELECT Event
FROM Events;

OUTPUT @result
TO @output
USING Outputters.Csv(outputHeader : true, quoting : true);

现在,由于它是一个 INSERT IMTO 数据将被附加到表中。

资源:
GitHub Examples

More GitHub Examples

关于azure - 如何从azure数据湖读取行分隔的json文件并使用usql进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53945080/

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