作業の開始

データのパイプラインを構築するための最初の手順は、環境をセットアップすることです。 環境の準備が整ったら、すばやく簡単にサンプルを実行できます。

この記事では、次の手順を実行して作業を開始します。

  1. Cognitive Services リソースを作成する
  2. Apache Spark クラスターを作成する
  3. サンプルを試す

Cognitive Services リソースの作成

ビッグデータ向けの Cognitive Services を使用するには、まず、ワークフロー用の Cognitive Service を作成する必要があります。 Cognitive Services には主に 2 つの種類があります。具体的には、Azure でホストされるクラウド サービスと、ユーザーが管理するコンテナー化されたサービスです。 より単純なクラウドベースの Cognitive Services から始めることをお勧めします。

クラウド サービス

クラウドベースの Cognitive Services は、Azure でホストされているインテリジェントなアルゴリズムです。 これらのサービスは、トレーニングなしですぐに使用でき、インターネット接続のみが必要です。 Cognitive Service は Azure portal または Azure CLI で作成できます。

コンテナー化されたサービス (オプション)

アプリケーションまたはワークロードで大規模なデータセットが使用されている場合、プライベート ネットワークが必要な場合、またはクラウドに接続できない場合は、クラウド サービスと通信できない可能性があります。 このような状況で、コンテナー化された Cognitive Services には次のような利点があります。

  • 低い接続性:コンテナー化された Cognitive Services は、クラウド内とクラウド外の両方のコンピューティング環境にデプロイできます。 アプリケーションがクラウドに接続できない場合、コンテナー化された Cognitive Services をアプリケーションにデプロイすることを検討してください。

  • 低待機時間:コンテナー化されたサービスはクラウドとの間のラウンドトリップ通信を必要としないため、応答が返されるときの待機時間が非常に短くなります。

  • プライバシーとデータ セキュリティ:コンテナー化されたサービスをプライベート ネットワークに展開して、機密データがネットワークから出ないようにすることができます。

  • 高いスケーラビリティ:コンテナー化されたサービスには "レート制限" がなく、ユーザーが管理するコンピューター上で実行されます。 そのため、より大規模なワークロードを処理するために、Cognitive Services を際限なく拡張できます。

コンテナー化された Cognitive Service を作成するには、こちらガイドに従ってください。

Apache Spark クラスターの作成

Apache Spark™ は、ビッグデータのデータ処理向けに設計された分散コンピューティング フレームワークです。 ユーザーは、Azure Databricks、Azure Synapse Analytics、HDInsight、Azure Kubernetes Services などのサービスと Apache Spark を Azure 内で一緒に使用できます。 ビッグ データ向けの Cognitive Services を使用するには、最初にクラスターを作成する必要があります。 Spark クラスターを既にお持ちの場合は、自由にサンプルを試してみてください。

Azure Databricks

Azure Databricks は、Apache Spark ベースの分析プラットフォームです。ワンクリックでのセットアップと効率的なワークフロー、および対話型ワークスペースを提供します。 多くの場合、データ サイエンティスト、エンジニア、およびビジネス アナリスト間の共同作業に使用されます。 Azure Databricks でビッグ データ向けの Cognitive Services を使用するには、次の手順を実行します。

  1. Azure Databricks ワークスペースを作成します
  2. Databricks に Spark クラスターを作成する
  3. ビッグ データ向けの Cognitive Services をインストールする
    • Databricks ワークスペースに新しいライブラリを作成します
      Create library
    • 次の maven 座標を入力します。com.microsoft.ml.spark:mmlspark_2.11:1.0.0-rc3 リポジトリ: https://mmlspark.azureedge.net/maven
      Library Coordinates
    • ライブラリをクラスターにインストールします
      Install Library on Cluster

Azure Synapse Analytics (オプション)

必要に応じて、Synapse Analytics を使用して Spark クラスターを作成できます。 Azure Synapse Analytics では、エンタープライズ データ ウェアハウスとビッグ データ分析がまとめられています。 サーバーレスのオンデマンド リソースまたはプロビジョニング済みのリソースを大規模に使用しながら、各自の条件で自由にデータのクエリを実行できます。 Azure Synapse Analytics の使用を開始するには、次の手順を行います。

  1. Synapse ワークスペースを作成する (プレビュー)
  2. Azure portal を使用して、新しいサーバーレス Apache Spark プール (プレビュー) を作成する

Azure Synapse Analytics には、ビッグ データ向けの Cognitive Services が既定でインストールされています。

Azure Kubernetes Service

コンテナー化された Cognitive Services を使用している場合、Spark をコンテナーと共にデプロイするための一般的なオプションの 1 つが Azure Kubernetes Service です。

Azure Kubernetes Service の利用を開始するには、次の手順を実行します。

  1. Azure portal を使用して Azure Kubernetes Service (AKS) クラスターをデプロイする
  2. Apache Spark 2.4.0 Helm グラフをインストールする
  3. Helm を使用して Cognitive Service コンテナーをインストールする

サンプルを試す

Spark クラスターと環境を設定した後、短いサンプルを実行できます。 このセクションでは、ビッグ データ向けの Cognitive Services を Azure Databricks で使用する方法について説明します。

最初に、Azure Databricks でノートブックを作成できます。 他の Spark クラスター プロバイダーについては、それらのノートブックまたは Spark Submit を使用します。

  1. [Azure Databricks] メニューから [新しいノートブック] を選択して、新しい Databricks ノートブックを作成します。

    Create a new notebook
  2. [Create Notebook] (ノートブックの作成) ダイアログ ボックスで、名前を入力し、言語として [Python] を選択してから、前に作成した Spark クラスターを選択します。

    New notebook details

    [作成] を選択します

  3. こちらのコード スニペットを新しいノートブックに貼り付けます。

from mmlspark.cognitive import *
from pyspark.sql.functions import col

# Add your subscription key from Text Analytics (or a general Cognitive Service key)
service_key = "ADD-SUBSCRIPTION-KEY-HERE"

df = spark.createDataFrame([
  ("I am so happy today, its sunny!", "en-US"),
  ("I am frustrated by this rush hour traffic", "en-US"),
  ("The cognitive services on spark aint bad", "en-US"),
], ["text", "language"])

sentiment = (TextSentiment()
    .setTextCol("text")
    .setLocation("eastus")
    .setSubscriptionKey(service_key)
    .setOutputCol("sentiment")
    .setErrorCol("error")
    .setLanguageCol("language"))

results = sentiment.transform(df)

# Show the results in a table
display(results.select("text", col("sentiment")[0].getItem("score").alias("sentiment")))

  1. Azure portal の Text Analytics ダッシュボードの [Keys and Endpoint](キーとエンドポイント) メニューからご自身のサブスクリプション キーを取得します。
  2. Databricks ノートブック コード内のサブスクリプション キーのプレースホルダーを、ご自身のサブスクリプション キーで置き換えます。
  3. ノートブック セルの右上にある三角形のプレイ記号を選択して、サンプルを実行します。 必要に応じて、ノートブックの上部にある [Run All](すべて実行) を選択して、すべてのセルを実行します。 回答はテーブル内のセルの下に表示されます。

予想される結果

text センチメント
I am so happy today, its sunny! 0.978959
I am frustrated by this rush hour traffic 0.0237956
The cognitive services on spark aint bad 0.888896

次のステップ