Visual Studio Code で Azure Data Lake Analytics の Python、R、および C# を使用して U-SQL を開発するDevelop U-SQL with Python, R, and C# for Azure Data Lake Analytics in Visual Studio Code

Visual Studio Code (VSCode) を使用して、U-SQL で Python、R、および C# 分離コードを記述し、Azure Data Lake サービスにジョブを送信する方法について説明します。Learn how to use Visual Studio Code (VSCode) to write Python, R and C# code behind with U-SQL and submit jobs to Azure Data Lake service. Data Lake Tools for VSCode の詳細については、「Azure Data Lake Tools for Visual Studio Code の使用」を参照してください。For more information about Azure Data Lake Tools for VSCode, see Use the Azure Data Lake Tools for Visual Studio Code.

分離コードのカスタム コードを記述する前に、VSCode でフォルダーまたはワークスペースを開く必要があります。Before writing code-behind custom code, you need to open a folder or a workspace in VSCode.

Python および R の前提条件Prerequisites for Python and R

ADL アカウントで Python および R の拡張機能アセンブリを登録します。Register Python and, R extensions assemblies for your ADL account.

  1. ポータルで自分のアカウントを開きます。Open your account in portal.

    • [概要] を選択します。Select Overview.
    • [サンプル スクリプト] をクリックします。Click Sample Script.
  2. [詳細] をクリックします。Click More.

  3. [U-SQL Extensions をインストールする] を選択します。Select Install U-SQL Extensions.

  4. U-SQL 拡張機能のインストール後に、確認メッセージが表示されます。Confirmation message is displayed after the U-SQL extensions are installed.

    Python および R 用の環境の設定

    注意

    Python および R 言語サービスで最適なエクスペリエンスを実現するには、VSCode Python および R 拡張機能をインストールしてください。For best experiences on Python and R language service, please install VSCode Python and R extension.

Python ファイルの開発Develop Python file

  1. ワークスペースで [新しいファイル] をクリックします。Click the New File in your workspace.

  2. U-SQL でコードを記述します。Write your code in U-SQL. サンプル コードを次に示します。The following is a code sample.

    REFERENCE ASSEMBLY [ExtPython];
    @t  = 
        SELECT * FROM 
        (VALUES
            ("D1","T1","A1","@foo Hello World @bar"),
            ("D2","T2","A2","@baz Hello World @beer")
        ) AS 
            D( date, time, author, tweet );
    
    @m  =
        REDUCE @t ON date
        PRODUCE date string, mentions string
        USING new Extension.Python.Reducer("pythonSample.usql.py", pyVersion : "3.5.1");
    
    OUTPUT @m
        TO "/tweetmentions.csv"
        USING Outputters.Csv();
    
  3. スクリプト ファイルを右クリックし、 [ADL: Generate Python Code Behind File](ADL: Python 分離コード ファイルの生成) を選択します。Right-click a script file, and then select ADL: Generate Python Code Behind File.

  4. 作業フォルダーに xxx.usql.py ファイルが生成されます。The xxx.usql.py file is generated in your working folder. Python ファイルでコードを記述します。Write your code in Python file. サンプル コードを次に示します。The following is a code sample.

    def get_mentions(tweet):
        return ';'.join( ( w[1:] for w in tweet.split() if w[0]=='@' ) )
    
    def usqlml_main(df):
        del df['time']
        del df['author']
        df['mentions'] = df.tweet.apply(get_mentions)
        del df['tweet']
        return df
    
  5. USQL ファイルを右クリックし、 [スクリプトをコンパイル] をクリックするか、 [ジョブの送信] をクリックしてジョブを実行します。Right-click in USQL file, you can click Compile Script or Submit Job to running job.

R ファイルの開発Develop R file

  1. ワークスペースで [新しいファイル] をクリックします。Click the New File in your workspace.

  2. U-SQL ファイルでコードを記述します。Write your code in U-SQL file. サンプル コードを次に示します。The following is a code sample.

    DEPLOY RESOURCE @"/usqlext/samples/R/my_model_LM_Iris.rda";
    DECLARE @IrisData string = @"/usqlext/samples/R/iris.csv";
    DECLARE @OutputFilePredictions string = @"/my/R/Output/LMPredictionsIris.txt";
    DECLARE @PartitionCount int = 10;
    
    @InputData =
        EXTRACT SepalLength double,
                SepalWidth double,
                PetalLength double,
                PetalWidth double,
                Species string
        FROM @IrisData
        USING Extractors.Csv();
    
    @ExtendedData =
        SELECT Extension.R.RandomNumberGenerator.GetRandomNumber(@PartitionCount) AS Par,
            SepalLength,
            SepalWidth,
            PetalLength,
            PetalWidth
        FROM @InputData;
    
    // Predict Species
    
    @RScriptOutput =
        REDUCE @ExtendedData
        ON Par
        PRODUCE Par,
                fit double,
                lwr double,
                upr double
        READONLY Par
        USING new Extension.R.Reducer(scriptFile : "RClusterRun.usql.R", rReturnType : "dataframe", stringsAsFactors : false);
    OUTPUT @RScriptOutput
    TO @OutputFilePredictions
    USING Outputters.Tsv();
    
  3. USQL ファイルを右クリックし、 [ADL: Generate R Code Behind File](ADL: R 分離コード ファイルの生成) を選択します。Right-click in USQL file, and then select ADL: Generate R Code Behind File.

  4. 作業フォルダーに xxx.usql.r ファイルが生成されます。The xxx.usql.r file is generated in your working folder. R ファイルでコードを記述します。Write your code in R file. サンプル コードを次に示します。The following is a code sample.

    load("my_model_LM_Iris.rda")
    outputToUSQL=data.frame(predict(lm.fit, inputFromUSQL, interval="confidence"))
    
  5. USQL ファイルを右クリックし、 [スクリプトをコンパイル] をクリックするか、 [ジョブの送信] をクリックしてジョブを実行します。Right-click in USQL file, you can click Compile Script or Submit Job to running job.

C# ファイルの開発Develop C# file

分離コード ファイルは、1 つの U-SQL スクリプトに関連付けられている C# ファイルです。A code-behind file is a C# file associated with a single U-SQL script. 分離コード ファイルでは、スクリプト専用の UDO、UDA、UDT、UDF を定義できます。You can define a script dedicated to UDO, UDA, UDT, and UDF in the code-behind file. UDO、UDA、UDT、UDF は、アセンブリを先に登録しなくても、スクリプト内で直接使用できます。The UDO, UDA, UDT, and UDF can be used directly in the script without registering the assembly first. 分離コード ファイルは、対になる U-SQL スクリプト ファイルと同じフォルダーに置かれます。The code-behind file is put in the same folder as its peering U-SQL script file. スクリプトに xxx.usql という名前が付けられた場合、分離コードの名前は xxx.usql.cs となります。If the script is named xxx.usql, the code-behind is named as xxx.usql.cs. 分離コード ファイルを手動で削除すると、関連付けられている U-SQL スクリプトの分離コード機能が無効になります。If you manually delete the code-behind file, the code-behind feature is disabled for its associated U-SQL script. U-SQL スクリプト用のカスタム コードを記述する方法の詳細については、「Writing and Using Custom Code in U-SQL – User-Defined Functions (U-SQL でのカスタム コードの記述と使用 - ユーザー定義関数)」を参照してください。For more information about writing customer code for U-SQL script, see Writing and Using Custom Code in U-SQL: User-Defined Functions.

  1. ワークスペースで [新しいファイル] をクリックします。Click the New File in your workspace.

  2. U-SQL ファイルでコードを記述します。Write your code in U-SQL file. サンプル コードを次に示します。The following is a code sample.

    @a = 
        EXTRACT 
            Iid int,
        Starts DateTime,
        Region string,
        Query string,
        DwellTime int,
        Results string,
        ClickedUrls string 
        FROM @"/Samples/Data/SearchLog.tsv" 
        USING Extractors.Tsv();
    
    @d =
        SELECT DISTINCT Region 
        FROM @a;
    
    @d1 = 
        PROCESS @d
        PRODUCE 
            Region string,
        Mkt string
        USING new USQLApplication_codebehind.MyProcessor();
    
    OUTPUT @d1 
        TO @"/output/SearchLogtest.txt" 
        USING Outputters.Tsv();
    
  3. USQL ファイルを右クリックし、 [ADL: Generate CS Code Behind File](ADL: CS 分離コード ファイルの生成) を選択します。Right-click in USQL file, and then select ADL: Generate CS Code Behind File.

  4. 作業フォルダーに xxx.usql.cs ファイルが生成されます。The xxx.usql.cs file is generated in your working folder. CS ファイルでコードを記述します。Write your code in CS file. サンプル コードを次に示します。The following is a code sample.

    namespace USQLApplication_codebehind
    {
        [SqlUserDefinedProcessor]
    
        public class MyProcessor : IProcessor
        {
            public override IRow Process(IRow input, IUpdatableRow output)
            {
                output.Set(0, input.Get<string>(0));
                output.Set(1, input.Get<string>(0));
                return output.AsReadOnly();
            } 
        }
    }
    
  5. USQL ファイルを右クリックし、 [スクリプトをコンパイル] をクリックするか、 [ジョブの送信] をクリックしてジョブを実行します。Right-click in USQL file, you can click Compile Script or Submit Job to running job.

次のステップNext steps