私は U-SQL スクリプトを作成しようとしてきましたが、以下の例も使用しました。
CREATE ASSEMBLY IF NOT EXISTS [Newtonsoft.Json] FROM "assemblies/Newtonsoft.Json.dll";
CREATE ASSEMBLY IF NOT EXISTS [Microsoft.Analytics.Samples.Formats] FROM "assemblies/Microsoft.Analytics.Samples.Formats.dll";
REFERENCE ASSEMBLY [Newtonsoft.Json];
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];
DECLARE @INPUT_FILE string = @"/Samples/Data/json/donut.json";
//Extract the sps property from the Json file as a string.
@json =
EXTRACT sps string
FROM @INPUT_FILE
USING new Microsoft.Analytics.Samples.Formats.Json.JsonExtractor();
@json =
SELECT sps.Replace("\r\n", "") AS sps
FROM @json;
/*
Parse the sps property to extract the id and name values as a SQL.MAP
*/
@sps_json =
SELECT Microsoft.Analytics.Samples.Formats.Json.JsonFunctions.JsonTuple(sps, "$..id") AS sp_id_map,
Microsoft.Analytics.Samples.Formats.Json.JsonFunctions.JsonTuple(sps, "$..type") AS sp_type_map
FROM @json;
/*
Explode the id and type maps to get the values of the Id and type as individual rowsets
*/
@sps_id_property =
SELECT id_name.Split('.')[0] AS id_name,
id_value
FROM @sps_json
CROSS APPLY
EXPLODE(sp_id_map) AS T(id_name, id_value);
@sps_type_property =
SELECT type_name.Split('.')[0] AS type_name,
type_value
FROM @sps_json
CROSS APPLY
EXPLODE(sp_type_map) AS T(type_name, type_value);
/*
JOIN the Id and Value maps to return the properties as a rowset
Output of the following JOIN statement
1001,Regular
1002,Chocolate
1003,Blueberry
1004,Devil's Food
*/
@sps = SELECT [id].id_value AS id, [type].type_value AS type
FROM @sps_id_property AS [id]
INNER JOIN @sps_type_property AS [type]
ON id.id_name == type.type_name;
/*
Output the file.
*/
OUTPUT @sps
TO "/rukmanig/output/sps.csv"
USING Outputters.Csv(quoting : false);
ただし、これをビルドすると、次のエラーが発生します。
E_CSC_USER_NOTAUTHORIZED: このステートメントには、データベース 'master' に対する USE 権限が必要です
なぜこれを持っているのかわかりません。彼が同じプロジェクトを構築するとき、私の他の同僚は何の問題もありません。以前はビルドできたのですが、なぜかビルドできなくなりました。
理由を知っている人はいますか?
ありがとう。