USQLを使用してJSONファイルからデータを抽出しようとしました。クエリは、出力データを生成せずに正常に実行されるか、「頂点には失敗した高速エラー」が発生します。U-SQL JSONファイルからデータを抽出できません
JSONファイルは次のようになります。
{
"results": [
{
"name": "Sales/Account",
"id": "7367e3f2-e1a5-11e5-80e8-0933ecd4cd8c",
"deviceName": "HP",
"deviceModel": "g6-pavilion",
"clientip": "0.41.4.1"
},
{
"name": "Sales/Account",
"id": "c01efba0-e0d5-11e5-ae20-af6dc1f2c036",
"deviceName": "acer",
"deviceModel": "veriton",
"clientip": "10.10.14.36"
}
]
}
そして、私のU-SQLスクリプトは問題があなたの@ trail2出力はJSON配列」ということだった
REFERENCE ASSEMBLY [Newtonsoft.Json];
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];
DECLARE @in string="adl://xyz.azuredatalakestore.net/todelete.json";
DECLARE @out string="adl://xyz.azuredatalakestore.net/todelete.tsv";
@trail2=EXTRACT results string FROM @in USING new Microsoft.Analytics.Samples.Formats.Json.JsonExtractor();
@jsonify=SELECT Microsoft.Analytics.Samples.Formats.Json.JsonFunctions.JsonTuple(results,"name","id","deviceName","deviceModel","clientip") AS rec FROM @trail2;
@logSchema=SELECT rec["name"] AS sysName,
rec["id"] AS sysId,
rec["deviceName"] AS domainDeviceName,
rec["deviceModel"] AS domainDeviceModel,
rec["clientip"] AS domainClientIp
FROM @jsonify;
OUTPUT @logSchema TO @out USING Outputters.Tsv();
マイケルに問題が解決したことを感謝します。 –
中間ファイル(スクリプトが作成したデータを読み取ることができないため、実際には2つのジョブを提出する必要があります)を使用しない方が効率的です。私の代わりの答えを見てください。 –