我是ADL的新手& JSON文件。我正在尝试将JSON文件加载到ADL表中。如何将JSON文件上传到Azure Data Lake表
我的JSON文件结构
{ABCD:{Time:"", Date:"", ProcessingTime:"", ProcessName:""}},
{ABCD:{Date:"", ProcessingTime:"", ProcessName:""}},
{ABCD:{ProcessingTime:"", ProcessName:""}},
{ABCD:{Time:"", Date:"", ProcessingTime:"", ProcessName:""}},
我的表有所有的4列(时间,数据,ProcessingTime,& ProcessName)。
首先,我在使用USQL语句将其写入CSV文件之前,先将它写入表中。但是,所有空白记录都会生成CSV输出。
任何帮助表示赞赏。我也可以通过ADF来做到这一点吗?我希望将此作为预定的工作。
以下是我用来编写CSV文件的USQL代码。
CREATE ASSEMBLY IF NOT EXISTS [Newtonsoft.Json] FROM
"C:/Test/Assemblies/Newtonsoft.Json.dll";
CREATE ASSEMBLY IF NOT EXISTS [Microsoft.Analytics.Samples.Formats] FROM
"C:/ADL/Assemblies/Microsoft.Analytics.Samples.Formats.dll";
REFERENCE ASSEMBLY [Newtonsoft.Json];
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];
USING Microsoft.Analytics.Samples.Formats.Json;
DECLARE @path string = @"C:\Test\";
DECLARE @input string = @path + @"sample_data1.json";
DECLARE @to string = @path + @"output.csv";
@jsonFile =
EXTRACT
Time string,
Date string,
ProcessingTime string,
ProcessName string
FROM @input
USING new JsonExtractor();
OUTPUT @jsonFile
TO @to
USING Outputters.Csv();
干杯!
谢谢彼得!删除了Json对象之间的逗号并按照上面的建议更新了代码,但是代码失败,出现“加载jarray时意外的内容结束”错误。使用Google搜索,但无法诊断错误。任何指导非常感谢。 – Rmani
@Rmani进一步检查我注意到Json输入仍然无效。我已经更新了答案中的示例输入。然后我注意到在运行这个工作时显然你不能使用所有的大写标识符,所以我在脚本(l.23)中将'AS ADBC'改为'AS Abcd'。我用我的示例输入测试了它,并没有发现错误。错误是否显示任何行?你是否使用示例json或其他文件? –
再次感谢彼得!能够创建CSV文件,有没有办法通过USQL删除JSON对象之间的逗号并插入到Azure表中?我一直在Google上寻找答案,但找不到任何相关信息。 – Rmani