次の方法で共有


Visual Studio Code の SQL Server ビッグ データ クラスターで Spark ジョブを送信する

重要

Microsoft SQL Server 2019 ビッグ データ クラスターのアドオンは廃止されます。 SQL Server 2019 ビッグ データ クラスターのサポートは、2025 年 2 月 28 日に終了します。 ソフトウェア アシュアランス付きの SQL Server 2019 を使用する既存の全ユーザーはプラットフォームで完全にサポートされ、ソフトウェアはその時点まで SQL Server の累積更新プログラムによって引き続きメンテナンスされます。 詳細については、お知らせのブログ記事と「Microsoft SQL Server プラットフォームのビッグ データ オプション」を参照してください。

Spark と Hive Tools for Visual Studio Code を使用して Apache Spark 用の PySpark スクリプトを作成および送信する方法について説明します。最初に、Visual Studio Code で Spark と Hive ツールをインストールする方法について説明し、次に Spark にジョブを送信する方法について説明します。

Spark と Hive Tools は、Windows、Linux、macOS を含む Visual Studio Code でサポートされているプラットフォームにインストールできます。 以下に、さまざまなプラットフォームの前提条件を示します。

[前提条件]

この記事の手順を完了するには、次の項目が必要です。

Spark & Hive Tools をインストールする

前提条件を完了したら、Spark と Hive Tools for Visual Studio Code をインストールできます。 Spark と Hive Tools をインストールするには、次の手順を実行します。

  1. Visual Studio Code を開きます。

  2. メニュー バーから [View]\(表示\)>[Extensions]\(拡張機能\) に移動します。

  3. 検索ボックスに、「Spark & Hive」と入力します。

  4. 検索結果から Microsoft によって発行された Spark と Hive Tools を選択し、[ インストール] を選択します。

    拡張機能のインストール

  5. 必要に応じ、再読み込みします。

作業フォルダーを開く

次の手順を実行して作業フォルダーを開き、Visual Studio Code でファイルを作成します。

  1. メニュー バーから[ファイル]>[フォルダーを開く]...> に移動します。C:\SQLBDC\SQLBDCexample を選択し、[フォルダーの選択] ボタンを選択します。 左側の [Explorer](エクスプローラー) ビューにフォルダーが表示されます。

  2. エクスプローラー ビューで、フォルダー SQLBDCexample を選択し、作業フォルダーの横にある [新しいファイル] アイコンを選択します。

    新しいファイル

  3. 新しいファイルに .py (Spark スクリプト) ファイル拡張子を付けます。 この例では 、HelloWorld.py を使用します。

  4. 次のコードをコピーしてスクリプト ファイルに貼り付けます。

    import sys
    from operator import add
    from pyspark.sql import SparkSession, Row
    
    spark = SparkSession\
       .builder\
       .appName("PythonWordCount")\
       .getOrCreate()
    
    data = [Row(col1='pyspark and spark', col2=1), Row(col1='pyspark', col2=2), Row(col1='spark vs hadoop', col2=2), Row(col1='spark', col2=2), Row(col1='hadoop', col2=2)]
    df = spark.createDataFrame(data)
    lines = df.rdd.map(lambda r: r[0])
    
    counters = lines.flatMap(lambda x: x.split(' ')) \
       .map(lambda x: (x, 1)) \
       .reduceByKey(add)
    
    output = counters.collect()
    sortedCollection = sorted(output, key = lambda r: r[1], reverse = True)
    
    for (word, count) in sortedCollection:
       print("%s: %i" % (word, count))
    

Visual Studio Code からクラスターにスクリプトを送信するには、SQL Server ビッグ データ クラスターをリンクする必要があります。

  1. メニュー バーから [表示>コマンド パレット...] に移動し、「 Spark/Hive: Link a Cluster」と入力します。

    link cluster コマンド

  2. リンクされたクラスターの種類 として SQL Server ビッグ データを選択します

  3. SQL Server ビッグ データ エンドポイントを入力します。

  4. SQL Server ビッグ データ クラスターのユーザー名を入力します。

  5. ユーザー管理者のパスワードを入力します。

  6. ビッグ データ クラスターの表示名を設定します (省略可能)。

  7. クラスターを一覧表示し、 OUTPUT ビューで検証を確認します。

クラスターを一覧表示する

  1. メニュー バーから [表示>コマンド パレット...] に移動し、「 Spark/Hive: List Cluster」と入力します。

  2. [OUTPUT](出力) ビューを確認します。 ビューには、リンクされたクラスターが表示されます。

    既定のクラスター構成を設定する

既定のクラスターを設定する

  1. 閉じた場合は、先ほど作成した SQLBDCexample フォルダーを Re-Open します。

  2. 先ほど作成 HelloWorld.py ファイルを選択すると、スクリプト エディターで開きます。

  3. まだ行っていない場合は、クラスターをリンクします。

  4. スクリプト エディターを右クリックし、 Spark/Hive: Set Default Cluster を選択します。

  5. 現在のスクリプト ファイルの既定のクラスターとしてクラスターを選択します。 ツールによって構成ファイルが自動的に更新されます 。VSCode\settings.jsオン

    既定のクラスター構成を設定する

対話型の PySpark クエリを送信する

次の手順に従って、対話型の PySpark クエリを送信できます。

  1. 閉じた場合は、先ほど作成した SQLBDCexample フォルダーをもう一度開きます。

  2. 先ほど作成 HelloWorld.py ファイルを選択すると、スクリプト エディターで開きます。

  3. まだ行っていない場合は、クラスターをリンクします。

  4. すべてのコードを選択し、スクリプト エディターを右クリックし、[ Spark: PySpark Interactive ] を選択してクエリを送信するか、ショートカット Ctrl + Alt + I を使用します。

    pyspark 対話型コンテキスト メニュー

  5. 既定のクラスターを指定していない場合は、クラスターを選択します。 しばらくすると、 Python 対話型 の結果が新しいタブに表示されます。ツールを使用すると、コンテキスト メニューを使用してスクリプト ファイル全体ではなく、コード ブロックを送信することもできます。

    pyspark 対話型 Python ウィンドウ

  6. 「」と入力%%info し、Shift キーを押しながら Enter キーを押してジョブ情報を表示します。 (省略可能)

    ジョブ情報の表示

    設定で [Python 拡張機能の有効化] がオフになっている場合 (既定の設定はオン)、送信された pyspark の対話結果で古いウィンドウが使用されます。

    pyspark 対話型 Python 拡張機能が無効になっている

PySpark バッチ ジョブを送信する

  1. 閉じた場合は、先ほど作成した SQLBDCexample フォルダーをもう一度開きます。

  2. 先ほど作成 HelloWorld.py ファイルを選択すると、スクリプト エディターで開きます。

  3. まだ行っていない場合は、クラスターをリンクします。

  4. スクリプト エディターを右クリックし、[ Spark: PySpark Batch] を選択するか、ショートカット Ctrl + Alt + H キーを使用します。

  5. 既定のクラスターを指定していない場合は、クラスターを選択します。 Python ジョブを送信すると、Visual Studio Code の [OUTPUT](出力) ウィンドウに送信ログが表示されます。 Spark UI URLYarn UI URL も表示されます。 Web ブラウザーで URL を開いて、ジョブの状態を追跡することができます。

    Python ジョブの結果を送信する

Apache Livy の構成

Apache Livy の構成がサポートされており、作業空間フォルダーの .VSCode\settings.js で設定できます。 現在、Livy の構成では Python スクリプトのみがサポートされています。 詳細については、 Livy README を参照してください。

Livy 構成をトリガーする方法

方法 1

  1. メニュー バーから [File](ファイル)>[Preferences](基本設定)>[Settings](設定) に移動します。
  2. [ 検索設定 ] テキスト ボックス に、「HDInsight Job Submission: Livy Conf」と入力します。
  3. 関連する検索結果に対して [Edit in settings.json](settings.json で編集) を選択します。

方法 2

ファイルを送信すると、 .vscode フォルダーが作業フォルダーに自動的に追加されます。 Livy の構成は、[settings.json] で.vscodeを選択することで確認できます。

プロジェクトの設定:

Livy の構成

driverMemoryExecutorMemory の設定では、単位で値を設定します (例: 1 gb または 1024 mb)。

サポートされている Livy 構成

POST /batches

リクエスト本文

名前 説明 種類
ファイル 実行するアプリケーションを含むファイル path (必須)
プロキシユーザー ジョブの実行時に権限を借用するユーザー ひも
クラス名 アプリケーション Java/Spark のメイン クラス ひも
args アプリケーションのコマンド ライン引数 文字列のリスト
このセッションで使用する jar 文字列の一覧
pyファイル(pyFiles) このセッションで使用する Python ファイル 文字列の一覧
ファイル このセッションで使用するファイル 文字列の一覧
ドライバメモリ(driverMemory) ドライバー プロセスに使用するメモリの量 ひも
ドライバーコア ドライバー プロセスに使用するコアの数 整数 (int)
エグゼキューターメモリ Executor プロセスごとに使用するメモリの量 ひも
executorCores 各 Executor に使用するコアの数 整数 (int)
実行者数 このセッションで起動する Executor の数 整数 (int)
史料 このセッションで使用するアーカイブ 文字列の一覧
待ち行列 送信先の YARN キューの名前 ひも
名前 このセッションの名前 ひも
(Assuming "conf" stands for "conference") コンファレンス Spark 構成プロパティ キーのマップ = val
:- :- :-

応答本文

作成されたバッチ オブジェクト。

名前 説明 種類
身分証明書 セッション ID 整数 (int)
アプリID このセッションのアプリケーション ID
appInfo 詳細なアプリケーション情報 キーのマップ = val
ログ ログ行 文字列のリスト
状態 バッチ状態 ひも
:- :- :-

スクリプトを送信すると、割り当てられた Livy 構成が出力ウィンドウに表示されます。

その他の機能

Spark および Hive for Visual Studio Code では、次の機能がサポートされています。

  • IntelliSense のオートコンプリート。 キーワード、メソッド、変数などの候補がポップアップ表示されます。 アイコンが異なると、オブジェクトの種類が異なります。

    Spark および Hive Tools for Visual Studio Code IntelliSense オブジェクトの種類

  • IntelliSense エラー マーカー。 言語サービスは、Hive スクリプトの編集エラーに下線を引きます。

  • 構文の強調表示。 言語サービスでは、さまざまな色を使用して変数、キーワード、データ型、関数などを区別します。

    Spark および Hive Tools for Visual Studio Code 構文の強調表示

  1. メニュー バーから [表示>コマンド パレット...] に移動し、「 Spark/Hive: クラスターのリンクを解除する」と入力します。

  2. リンクを解除するクラスターを選択します。

  3. [OUTPUT](出力) ビューを確認します。

次のステップ

SQL Server ビッグ データ クラスターと関連するシナリオの詳細については、「 SQL Server ビッグ データ クラスター」を参照してください。