重要
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 でサポートされているプラットフォームにインストールできます。 以下に、さまざまなプラットフォームの前提条件を示します。
[前提条件]
この記事の手順を完了するには、次の項目が必要です。
- SQL Server ビッグ データ クラスター。 SQL Server ビッグ データ クラスターを参照してください。
- Visual Studio Code。
- Visual Studio Code の Python と Python 拡張機能。
- Mono。 Mono は Linux および macOS でのみ必要です。
- Visual Studio Code 用に PySpark 対話型環境を設定します。
- SQLBDCexample という名前のローカル ディレクトリ。 この記事では 、C:\SQLBDC\SQLBDCexample を使用します。
Spark & Hive Tools をインストールする
前提条件を完了したら、Spark と Hive Tools for Visual Studio Code をインストールできます。 Spark と Hive Tools をインストールするには、次の手順を実行します。
Visual Studio Code を開きます。
メニュー バーから [View]\(表示\)>[Extensions]\(拡張機能\) に移動します。
検索ボックスに、「Spark & Hive」と入力します。
検索結果から Microsoft によって発行された Spark と Hive Tools を選択し、[ インストール] を選択します。
必要に応じ、再読み込みします。
作業フォルダーを開く
次の手順を実行して作業フォルダーを開き、Visual Studio Code でファイルを作成します。
メニュー バーから[ファイル]>[フォルダーを開く]...> に移動します。C:\SQLBDC\SQLBDCexample を選択し、[フォルダーの選択] ボタンを選択します。 左側の [Explorer](エクスプローラー) ビューにフォルダーが表示されます。
エクスプローラー ビューで、フォルダー SQLBDCexample を選択し、作業フォルダーの横にある [新しいファイル] アイコンを選択します。
新しいファイルに
.py
(Spark スクリプト) ファイル拡張子を付けます。 この例では 、HelloWorld.py を使用します。次のコードをコピーしてスクリプト ファイルに貼り付けます。
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))
SQL Server ビッグ データ クラスターをリンクする
Visual Studio Code からクラスターにスクリプトを送信するには、SQL Server ビッグ データ クラスターをリンクする必要があります。
メニュー バーから [表示>コマンド パレット...] に移動し、「 Spark/Hive: Link a Cluster」と入力します。
リンクされたクラスターの種類 として SQL Server ビッグ データを選択します。
SQL Server ビッグ データ エンドポイントを入力します。
SQL Server ビッグ データ クラスターのユーザー名を入力します。
ユーザー管理者のパスワードを入力します。
ビッグ データ クラスターの表示名を設定します (省略可能)。
クラスターを一覧表示し、 OUTPUT ビューで検証を確認します。
クラスターを一覧表示する
メニュー バーから [表示>コマンド パレット...] に移動し、「 Spark/Hive: List Cluster」と入力します。
[OUTPUT](出力) ビューを確認します。 ビューには、リンクされたクラスターが表示されます。
既定のクラスターを設定する
閉じた場合は、先ほど作成した SQLBDCexample フォルダーを Re-Open します。
先ほど作成 HelloWorld.py ファイルを選択すると、スクリプト エディターで開きます。
まだ行っていない場合は、クラスターをリンクします。
スクリプト エディターを右クリックし、 Spark/Hive: Set Default Cluster を選択します。
現在のスクリプト ファイルの既定のクラスターとしてクラスターを選択します。 ツールによって構成ファイルが自動的に更新されます 。VSCode\settings.jsオン。
対話型の PySpark クエリを送信する
次の手順に従って、対話型の PySpark クエリを送信できます。
閉じた場合は、先ほど作成した SQLBDCexample フォルダーをもう一度開きます。
先ほど作成 HelloWorld.py ファイルを選択すると、スクリプト エディターで開きます。
まだ行っていない場合は、クラスターをリンクします。
すべてのコードを選択し、スクリプト エディターを右クリックし、[ Spark: PySpark Interactive ] を選択してクエリを送信するか、ショートカット Ctrl + Alt + I を使用します。
既定のクラスターを指定していない場合は、クラスターを選択します。 しばらくすると、 Python 対話型 の結果が新しいタブに表示されます。ツールを使用すると、コンテキスト メニューを使用してスクリプト ファイル全体ではなく、コード ブロックを送信することもできます。
「」と入力%%info し、Shift キーを押しながら Enter キーを押してジョブ情報を表示します。 (省略可能)
注
設定で [Python 拡張機能の有効化] がオフになっている場合 (既定の設定はオン)、送信された pyspark の対話結果で古いウィンドウが使用されます。
PySpark バッチ ジョブを送信する
閉じた場合は、先ほど作成した SQLBDCexample フォルダーをもう一度開きます。
先ほど作成 HelloWorld.py ファイルを選択すると、スクリプト エディターで開きます。
まだ行っていない場合は、クラスターをリンクします。
スクリプト エディターを右クリックし、[ Spark: PySpark Batch] を選択するか、ショートカット Ctrl + Alt + H キーを使用します。
既定のクラスターを指定していない場合は、クラスターを選択します。 Python ジョブを送信すると、Visual Studio Code の [OUTPUT](出力) ウィンドウに送信ログが表示されます。 Spark UI URL と Yarn UI URL も表示されます。 Web ブラウザーで URL を開いて、ジョブの状態を追跡することができます。
Apache Livy の構成
Apache Livy の構成がサポートされており、作業空間フォルダーの .VSCode\settings.js で設定できます。 現在、Livy の構成では Python スクリプトのみがサポートされています。 詳細については、 Livy README を参照してください。
Livy 構成をトリガーする方法
方法 1
- メニュー バーから [File](ファイル)>[Preferences](基本設定)>[Settings](設定) に移動します。
- [ 検索設定 ] テキスト ボックス に、「HDInsight Job Submission: Livy Conf」と入力します。
- 関連する検索結果に対して [Edit in settings.json](settings.json で編集) を選択します。
方法 2
ファイルを送信すると、 .vscode
フォルダーが作業フォルダーに自動的に追加されます。 Livy の構成は、[settings.json
] で.vscode
を選択することで確認できます。
プロジェクトの設定:
注
driverMemory と ExecutorMemory の設定では、単位で値を設定します (例: 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 のオートコンプリート。 キーワード、メソッド、変数などの候補がポップアップ表示されます。 アイコンが異なると、オブジェクトの種類が異なります。
IntelliSense エラー マーカー。 言語サービスは、Hive スクリプトの編集エラーに下線を引きます。
構文の強調表示。 言語サービスでは、さまざまな色を使用して変数、キーワード、データ型、関数などを区別します。
クラスターのリンク解除
メニュー バーから [表示>コマンド パレット...] に移動し、「 Spark/Hive: クラスターのリンクを解除する」と入力します。
リンクを解除するクラスターを選択します。
[OUTPUT](出力) ビューを確認します。
次のステップ
SQL Server ビッグ データ クラスターと関連するシナリオの詳細については、「 SQL Server ビッグ データ クラスター」を参照してください。