すべてのプロダクト
Search
ドキュメントセンター

DataWorks:高度なノートブック開発

最終更新日:Jul 18, 2026

コードの再利用、データセットのマウント、パラメーター管理によって、開発効率を向上させます。MaxCompute Spark、EMR Serverless Spark、AnalyticDB for Spark などのコンピューティングエンジンに接続します。

説明

基本的なノートブック開発を読むことを推奨します。

環境の違い

DataWorks ノートブックは、スケジューリング可能な開発および分析ツールで、次の 2 つの環境で実行されます。

  • 開発環境:DataStudio の DataWorks ノートブック編集ページでセルを実行すると、迅速な検証とデバッグのために、コードは個人の開発環境インスタンスで実行されます。

  • 本番環境:DataWorks ノートブックノードをコミットして公開すると、定期的なスケジューリングまたはデータバックフィルがトリガーとなり、安定性と信頼性の高い本番実行のため、分離された一時的なタスクインスタンスでコードが実行されます。

これらの違いを理解することは、効率的な開発の鍵となります。

機能の違い

機能

開発環境 (セルの実行)

本番環境 (定期的なスケジューリング、データバックフィル)

プロジェクトリソースの参照 (.py)

  • 初回参照:リソースは自動的にダウンロードされ、有効になります。

  • 更新後:ツールバーの 再起動 ボタンをクリックして、更新された .py モジュールを再読み込みします。

    重要

    DataStudio の設定で、Dataworks › Notebook › Resource Reference: Download Strategy 設定を autoOverwrite に変更してください。

自動的に有効になります。

データセットの読み書き (OSS/NAS)

個人用の開発環境でデータセットをマウントします。

スケジューリング設定でデータセットをマウントします。

ワークスペースパラメーターの参照 (${...})

コード実行前に、パラメーターはその値に自動的に置き換えられます。

タスク実行前に、パラメーターはその値に自動的に置き換えられます。

Spark セッション管理

Spark セッションにはデフォルトで 2 時間のアイドルタイムアウトがあり、アイドル状態が続くと自動的に解放されます。

DataWorks は、タスクインスタンスごとに短期間のセッションを自動的に作成および破棄します。

本番環境でのコードとデータの再利用

プロジェクトリソースの参照 (.py ファイル)

共通の関数やクラスを .py ファイルにカプセル化し、##@resource_reference{"custom_name.py"} を使用して MaxCompute リソースとして参照します。これにより、コードがモジュール化され、メンテナンスが簡素化されます。

  1. Python リソースの作成と発行

    1. DataWorks の [DataStudio] の左側メニューで、image アイコンをクリックして [リソース管理] に移動します。

    2. 「リソース管理」ツリーで、ターゲットディレクトリを右クリックするか、右上隅の [+] をクリックし、リソースの新規作成 > [MaxCompute Python] を選択して、リソースに my_utils.py という名前を付けます。

    3. ファイルの内容 セクションで オンライン編集 をクリックし、デバッグ済みのユーティリティ関数コードをエディターに貼り付けて 保存 をクリックします。

      # my_utils.py
      def greet(name):
          return f"Hello, {name} from resource file!"
    4. ツールバーで 保存 をクリックし、次に 公開 をクリックします。これにより、リソースは 開発タスクと本番タスクの両方から参照できるようになります

  2. ノートブックでのリソース参照

    ノートブックの Python セル最初の行##@resource_reference 構文を使用して、発行済みのリソースを参照します。

    ##@resource_reference{"my_utils.py"}
    # リソースが my_folder/my_utils.py のようなディレクトリ内にある場合でも、ディレクトリ名なしで ##@resource_reference{"my_utils.py"} を使用します。
    from my_utils import greet
    message = greet('DataWorks')
    print(message)
  3. 開発環境でのデバッグと実行

    Python セルを実行します。次の結果が出力されます。

    Hello, DataWorks from resource file!
    重要

    開発環境でデバッグして実行すると、システムは ##@resource_reference 宣言を検出し、リソース管理から対象ファイルを個人のディレクトリ内の workspace/_dataworks/resource_references にダウンロードします。

    ModuleNotFoundError エラーが発生した場合は、エディターのツールバーにある 再起動 ボタンをクリックしてリソースを再読み込みしてから、再試行してください。

  4. 本番環境への発行と検証

    このノートブックノードを 保存 して 公開 した後、オペレーションセンター > 定期タスク に移動し、[Test] をクリックして実行します。タスクが正常に実行されると、ログに Hello, DataWorks from resource file! という出力が表示されます。

    重要

    There is no file with id ... エラーが発生した場合は、まず Python リソースを本番環境に発行したことを確認してください。

その他の操作については、「MaxCompute のリソースと関数」をご参照ください。

データセットの読み取りと書き込み (OSS/NAS)

ノートブックタスクの実行中に、OSS または NAS に保存されている大きなファイルの読み取りと書き込みを行います。

開発環境でのデバッグ

  1. データセットのマウント:個人の開発環境の詳細ページに移動します。ストレージ構成 > データセット で、データセットを設定します。

  2. コードでのアクセス:データセットは、個人の開発環境のマウントパスにマウントされます。コード内でこのパスから直接読み取りまたは書き込みができます。

    # 個人の開発環境の /mnt/data/dataset にデータセットがマウントされているものとします。
    import pandas as pd
    # マウントパスを直接使用します。
    file_path = '/mnt/data/dataset/testfile.csv'
    df = pd.read_csv(file_path)
    # PyODPS を使用してデータを MaxCompute に書き込みます。
    o = %odps
    o.write_table('mc_test_table', df, overwrite=True)
    print(f"Successfully wrote data to the MaxCompute table mc_test_table")

本番環境へのデプロイ

  1. データセットのマウント:ノートブックノードエディターの右側のナビゲーションペインで、スケジューリング設定 > スケジューリングポリシー に移動し、同じデータセットを追加します。

  2. コードでのアクセス:ノートブックをコミットして発行した後、データセットは本番環境のマウントパスにマウントされます。コード内でこのパスから直接読み取りまたは書き込みができます。

    # データセットが本番環境の /mnt/data/dataset にマウントされているものとします。
    import pandas as pd
    # マウントパスを直接使用します。
    file_path = '/mnt/data/dataset/testfile.csv'
    df = pd.read_csv(file_path)
    # PyODPS を使用してデータを MaxCompute に書き込みます。
    o = %odps
    o.write_table('mc_test_table', df, overwrite=True)
    print(f"Successfully wrote data to the MaxCompute table mc_test_table")
その他の操作については、「個人の開発環境でデータセットを使用する」をご参照ください。

ワークスペースパラメーターの参照

重要

この機能は、DataWorks Professional Edition 以降でのみ利用可能です。

スケジューリングパラメーター に加えて、DataWorks はワークスペースパラメーターを提供し、グローバル設定を再利用してタスクやノード間で環境を分離します。SQL セルと Python セルで ${workspace.param} を使用して参照します。ここで、param はパラメーター名です。

1. ワークスペースパラメーターの作成:DataWorks で、オペレーションセンター > スケジュール設定 > ワークスペースパラメーター に移動してパラメーターを作成します。

2. ワークスペースパラメーターの参照

  • SQL セルでワークスペースパラメーターを参照します。

    SELECT '${workspace.param}';

    クエリが正常に実行されると、パラメーターの解決済みの値が出力されます。

  • Python セルでワークスペースパラメーターを参照します。

    print('${workspace.param}')

    コードが正常に実行されると、パラメーターの解決済みの値が出力されます。

詳細については、「ワークスペースパラメーターの使用」をご参照ください。

マジックコマンドを使用したコンピューティングエンジンとの連携

マジックコマンドは、% または %% で始まる特殊なコマンドで、Python セルとコンピューティングリソース間のインタラクションを簡素化します。

MaxCompute への接続

説明

MaxCompute のコンピューティングリソースに接続する前に、MaxCompute のコンピューティングリソースをバインドしていることを確認してください。

  • %odps:PyODPS エントリオブジェクトを取得します

    これにより、コード内で AccessKey をハードコーディングせずに済みます。

    1. マジックコマンドを使用して MaxCompute 接続を作成します。 %odps と入力します。 右下隅に MaxCompute コンピューティングリソースセレクターが表示されます (コンピューティングリソースが自動的に選択されます)。 右下隅にある MaxCompute プロジェクト名をクリックして、MaxCompute プロジェクトを切り替えることができます。

      o = %odps 
    2. 取得した MaxCompute のコンピューティングリソースを使用して、PyODPS スクリプトを実行します。

      たとえば、現在のプロジェクトにあるすべてのテーブルを取得するには、次のようにします。

      with o.execute_sql('show tables').open_reader() as reader:
          print(reader.raw)
  • %maxframe: MaxFrame 接続を確立します

    MaxCompute 上で pandas のような分散データ処理を行うための MaxFrame セッションを作成します。

    # MaxCompute MaxFrame セッションに接続してアクセスします。
    mf_session = %maxframe
    df = mf_session.read_odps_table('your_mc_table')
    print(df.head())
    # 開発とデバッグが完了したら、リソースを解放するためにセッションを破棄します。
    mf_session.destroy()

Spark コンピューティングリソースへの接続

DataWorks の Notebook は複数の Spark エンジンへの接続をサポートしており、接続方法、実行コンテキスト、リソース管理がそれぞれ異なります。

重要

1 つのノートブックノードで、マジックコマンドを使用して接続できるコンピューティングリソースの種類は 1 つのみです。

エンジンの比較

機能

MaxCompute Spark

EMR Serverless Spark

AnalyticDB for Spark

接続コマンド

%maxcompute_spark

%emr_serverless_spark

%adb_spark add

説明

コマンドを実行すると、ノートブックカーネル全体の実行コンテキストがリモート PySpark 環境に切り替わります。以降のセルでは PySpark コードを直接記述できます。

前提条件

MaxCompute のコンピューティングリソースをバインドしておく必要があります。

EMR のコンピューティングリソースのバインドと、Livy ゲートウェイの作成が必要です。

AnalyticDB for Spark のコンピューティングリソースをバインドしておく必要があります。

開発環境モード

Livy セッションを自動的に作成するか、再利用します。

既存の Livy ゲートウェイに接続してセッションを作成します。

Spark Connect サーバーを自動的に作成するか、再利用します。

本番環境モード

Livy モード:Livy サービスを介して Spark ジョブをサブミットします。

spark-submit バッチモード:セッション状態を保持しない純粋なバッチ処理です。

Spark Connect サーバーモード:Spark Connect サービスを介してやり取りします。

本番環境でのリソース解放

タスクインスタンスの終了後に、セッションは自動的に解放されます。

タスクインスタンスの終了後に、リソースは自動的にクリーンアップされます。

タスクインスタンスの終了後に、リソースは自動的に解放されます。

ユースケース

MaxCompute エコシステムと密接に統合されたバッチ処理および ETL タスク。

Hudi や Iceberg など、オープンソースのビッグデータエコシステムとの連携や柔軟な構成を必要とする複雑な分析タスク。

AnalyticDB for MySQL の C-Store テーブルに対する高性能な対話型クエリと分析。

MaxCompute Spark

説明

MaxCompute のコンピューティングリソースに接続する前に、MaxCompute のコンピューティングリソースをバインドしていることを確認してください。

Livy を介して、MaxCompute プロジェクトの組み込み Spark エンジンに接続します。

  1. 接続の確立Python セルで次のコマンドを実行します。システムは Spark セッションを自動的に作成するか、再利用します。

    # Spark セッションを作成します。
    %maxcompute_spark
  2. PySpark コードの実行: 接続が確立されたら、新しい [Python セル]%%spark セルマジックを使用して PySpark コードを実行します。

    # MaxCompute Spark を使用する場合、Python セルは %%spark で開始する必要があります。
    %%spark
    df = spark.sql("SELECT * FROM your_mc_table LIMIT 10")
    df.show()
  3. 接続の手動解放:開発とデバッグが完了したら、セッションを手動で停止または削除できます。本番環境で実行する場合、システムは現在のタスクインスタンスの Livy セッションを自動的に停止し、削除します。

    # Spark セッションをクリーンアップし、Livy セッションを停止します。
    %maxcompute_spark stop
    # Spark セッションをクリーンアップし、Livy 構成を停止して削除します。
    %maxcompute_spark delete

EMR Serverless Spark

説明

コンピューティングリソースに接続する前に、ワークスペースで EMR Serverless Spark のコンピューティングリソースをバインドし、Livy ゲートウェイを作成してください。

既存の Livy ゲートウェイを介して EMR Serverless Spark に接続します。

  1. 接続の確立:コマンドを実行する前に、セルの右下で EMR のコンピューティングリソースLivy ゲートウェイを選択する必要があります。

    # 基本接続
    %emr_serverless_spark
    # または、接続時にカスタム Spark パラメーターを渡す場合は、パーセント記号を 2 つ (%%) 使用します。
    %%emr_serverless_spark
    {
      "spark_conf": {
        "spark.emr.serverless.environmentId": "<EMR_Serverless_Spark_runtime_environment_ID>",
        "spark.emr.serverless.network.service.name": "<EMR_Serverless_Spark_network_connection_ID>",
        "spark.driver.cores": "1",
        "spark.driver.memory": "8g",
        "spark.executor.cores": "1",
        "spark.executor.memory": "2g",
        "spark.driver.maxResultSize": "32g"
      }
    }
    説明

    カスタムパラメーターとグローバル構成の関係

    • デフォルトの動作:ここで定義したカスタムパラメーターは、現在のセッションにのみ適用されます。カスタムパラメーターを指定しない場合、システムは [管理センター] で構成されたグローバルパラメーターを使用します。

    • 推奨される使用方法:複数のタスクまたは複数ユーザーで再利用する必要がある構成については、一貫性を確保し、管理を簡素化するために、[管理センター] > [Serverless Spark] > [SPARK parameters] でグローバルに構成することを推奨します。

    • 優先度ルール:同じパラメーターがカスタムパラメーターとグローバル設定の両方に設定されている場合、管理センターグローバル[設定の優先度]オプションによって、どちらの設定が適用されるかが決まります。

      • 選択されている場合:このセッションでは、グローバル構成がカスタムパラメーターよりも優先されます。

      • 選択されていない場合:このセッションでは、カスタムパラメーターがグローバル構成よりも優先されます。

  2. (オプション) 再接続:管理者が誤って Livy ゲートウェイページからトークンを削除した場合は、次のコマンドを実行して再接続し、トークンを更新できます。

    # 現在の個人用開発環境に再接続し、Livy トークンを更新します。
    %emr_serverless_spark refresh_token
  3. PySpark または SQL コードの実行:接続に成功すると、カーネルが切り替わります。Python セルに PySpark コードを直接記述するか、EMR Spark SQL cell に SQL を記述できます。

    1. EMR Spark SQL セルのコンピューティングリソースでの SQL コードの送信と実行

      %emr_serverless_spark を使用して接続を確立した後、セルでコンピューティングリソースを選択することなく、EMR Spark SQL セルに SQL 文を直接記述できます。

      EMR Spark SQL セルは、%emr_serverless_spark からの接続を再利用し、コードをターゲットのコンピューティングリソースに送信して実行します。

      INSERT INTO employees VALUES
          (6, 'Fiona', 'Engineering', 98000.0),
          (7, 'George', 'Sales', 77000.0),
          (8, 'Hannah', 'Marketing', 72000.0),
          (9, 'Ian', 'Engineering', 105000.0),
          (10, 'Julia', 'HR', 68000.0);
    2. Python を使用した PySpark コードのサブミットと実行

      %emr_serverless_spark で接続を確立すると、新しい Python セルで PySpark コードを送信して実行できます。セルに %%spark プレフィックスを追加する必要はありません

      df = spark.sql("SELECT * FROM employees;")
      df.show()
      +---+-------+-----------+--------+
      | id|   name| department|  salary|
      +---+-------+-----------+--------+
      |  1|  Alice|Engineering| 95000.0|
      |  2|    Bob|  Marketing| 75000.0|
      |  3|Charlie|Engineering|110000.0|
      |  4|  Diana|         HR| 70000.0|
      |  5|   Evan|      Sales| 80000.0|
      |  6|  Fiona|Engineering| 98000.0|
      |  7| George|      Sales| 77000.0|
      |  8| Hannah|  Marketing| 72000.0|
      |  9|    Ian|Engineering|105000.0|
      | 10|  Julia|         HR| 68000.0|
      +---+-------+-----------+--------+
  4. 接続の手動解放

    重要

    複数ユーザーで Livy ゲートウェイを共有している場合、stop または delete コマンドは、ゲートウェイを使用中のすべてのユーザーに影響します。これらのコマンドは慎重に使用してください。

    # Spark セッションをクリーンアップし、Livy セッションを停止します。
    %emr_serverless_spark stop
    # Spark セッションをクリーンアップし、Livy 構成を停止して削除します。
    %emr_serverless_spark delete

AnalyticDB for Spark

説明

コンピューティングリソースに接続する前に、ワークスペースで AnalyticDB for Spark のコンピューティングリソースをバインドしてください。

Spark Connect サーバーを作成して、AnalyticDB for Spark エンジンに接続します。

  1. 接続の確立:ネットワーク接続を確保するために、接続パラメーターで vSwitch ID とセキュリティグループ ID を正しく構成する必要があります。コマンドを実行する前に、セルの右下で ADB Spark のコンピューティングリソースを選択します。

    # ネットワーク接続を確立するには、vSwitch ID とセキュリティグループ ID を構成する必要があります。
    %adb_spark add \
     --spark-conf spark.adb.version=3.5 \
     --spark-conf spark.adb.eni.enabled=true \
     --spark-conf spark.adb.eni.vswitchId=<vSwitch_ID_of_ADB> \
     --spark-conf spark.adb.eni.securityGroupId=<security_group_id_of_your_personal_development_environment>

    vSwitch ID とセキュリティグループ ID の確認方法

    • vSwitch ID (vswitchId):Alibaba Cloud AnalyticDB for MySQL コンソールに移動します。 インスタンス詳細ページで、[ネットワーク情報] セクションで [vSwitch ID] を確認します。

    • セキュリティグループ ID (securityGroupId): 個人開発環境の詳細ページに移動します。ネットワーク設定 セクションで、選択した セキュリティグループ の ID を見つけます。この ID は sg- で始まります。

      重要

      ネットワーク接続を確保するために、個人用の開発環境を作成する際は、AnalyticDB for Spark インスタンスと同じ VPC および vSwitch を選択することを推奨します。

  2. PySpark コードの実行:接続に成功したら、新しい Python セルで PySpark コードを実行します。

    # C-Store テーブルに対してのみ操作を実行できます。
    df = spark.sql("SELECT * FROM my_adb_cstore_table LIMIT 10")
    df.show()
    : AnalyticDB for Spark エンジンは現在、'storagePolicy'='COLD' 属性を持つ C-Store テーブルしか処理できません。
  3. 接続の手動解放:デバッグ後は、リソースを節約するために、接続セッションを手動でクリーンアップします。本番環境では、リソースは自動的にクリーンアップされます。

    %adb_spark cleanup

Lindorm Ray コンピューティングリソースへの接続

Lindorm コンピューティングエンジンの Ray リソースグループは、エンドツーエンドの AI ワークロード向けに分散コンピューティングを提供します。ノートブックでマジックコマンドを使用して Lindorm Ray リソースに接続し、対話形式で開発した後、ノートブックを本番のスケジューリングタスクとして発行します。

開始する前に、次の手順を完了してください。

  • Lindorm インスタンスを購入する際に、[Enable Compute Engine][Yes] を選択します。

  • Lindorm クラスターを DataWorks のコンピューティングリソースとして追加します。詳細については、「Bind a Lindorm compute resource」をご参照ください。

  • Lindorm コンソールで、クラスターに対して Ray リソースグループを有効化します。リソースグループを作成する際は、環境の整合性を確保するために、[詳細設定] で正しいイメージを指定します。

    Ray リソースグループのイメージはどのように構成しますか?

    Lindorm コンソールで Ray リソースグループを作成するときは、[詳細設定] を見つけて、次の JSON コンテンツを入力します。 画像アドレス内の region を、お使いの Lindorm クラスターが配置されているリージョンに置き換えます。 たとえば、beijingshanghai に置き換えます。

    {
      "IMAGE": "spark-repo-beijing-registry-vpc.cn-beijing.cr.aliyuncs.com/lindorm-compute/ray:2.39.0-0.7.0-py311-cpu"
    }
  • ネットワーク接続を確保するために、個人用の開発環境とサーバーレスリソースグループは、Lindorm クラスターと同じ VPC に配置する必要があります。

  1. 接続の確立: [Python セル]%lindorm_ray マジックコマンドを実行します。コマンドを実行すると、セルの右下にコンピューティングリソースセレクターが表示されます。[Lindorm コンピューティングリソース] と、作成した [Ray リソースグループ] を選択します。

    # 指定した Lindorm Ray リソースグループに接続します。
    %lindorm_ray
    重要
    • Lindorm Ray のコンピューティングリソースに接続した後は、同じノートブックで SQL セルを実行できなくなります。Lindorm Ray エンジンは、Python と Ray コードの実行に特化しています。

    • 同じコードセルを複数回実行すると、システムは前の Ray ジョブを自動的に終了し、新しいジョブを開始します。これにより、リソースの無駄やタスクの競合を防止します。

  2. Ray コードの実行:接続に成功したら、新しい Python セルに Ray コードを直接記述して実行できます。ログはセルの出力領域にリアルタイムでストリーミングされ、対話的なデバッグに使用できます。

    次の例では、 @ray.remote デコレーターを使用してシンプルなリモートタスクを定義します。タスクは Ray クラスターで実行され、ログと最終結果はセルの出力エリアに返されます。

    import ray
    import time
    @ray.remote
    def hello_world():
      print("Hello from Lindorm Ray!")
      time.sleep(5)
      return "Task finished."
    # リモートタスクをサブミットします。
    result_ref = hello_world.remote()
    print(ray.get(result_ref))
  3. (オプション) カスタム起動パラメーターの指定: サードパーティの Python パッケージのインストールやローカルのコードファイルのアップロードなど、Ray 環境の追加設定を構成するには、%%lindorm_ray を使用して接続を確立します。

    • 例 1:依存関係のインストール

      pip パラメーターを使用して、Ray 環境に jieba パッケージをインストールします。

      %%lindorm_ray
      {
        "runtime_env": {
          "pip": ["jieba"]
        }
      }

      環境の準備ができたら、後続の Ray タスクでパッケージをインポートして使用します。次の例では、リモート関数で jieba を呼び出して中国語の単語分割を行う方法を示します。

      import ray 
      @ray.remote
      def do_work(x):
          import jieba
          return "/".join(jieba.cut(x))
      print(ray.get(do_work.remote("欢迎使用DataWorks+LindormRay解决方案")))
    • 例 2:DataWorks リソースのアップロードと利用

      working_dir パラメーターを使用して、タスクでのインポート用にリソース管理から Ray クラスターにリソースをアップロードします。

      重要
      • working_dir を使用してリソースをアップロードすると、ファイルは開発環境から Ray クラスターに直接アップロードされます。 100 MB のサイズ制限が適用されます。 リソースパッケージが大きすぎる場合、アップロードが失敗したり、Ray ノードが不安定になったりする可能性があります。

      • 大容量のリソースや依存関係 (100 MB 超) の場合は、OSS にアップロードし、コードからダウンロードするか、カスタムイメージにパッケージ化して、安定性とパフォーマンスを高めてください。

      # リソース管理のリソースのパスを参照して宣言します。
      %%lindorm_ray
      {
          "runtime_env": {
              "working_dir": "/mnt/workspace/_dataworks/resource_references"
          }
      }

      DataWorks のリソース管理に ray_resource.py という名前のファイルをアップロードしたとします。 次のセルを実行すると、システムは ##@resource_reference 宣言を解析し、対応するリソースを /mnt/workspace/_dataworks/resource_references にダウンロードします。

      ray_resource.py のコード例:

      def fun():
          print("This is a test function in ray_resource.py")
      重要

      開発環境では、##@resource_reference を含むセルを実行した後、直前の %%lindorm_ray セルを再実行する必要があります。このセルを再実行すると、ダウンロードされたリソースが working_dir に含まれ、Ray クラスターにアップロードされます。本番環境では、セルを再実行する必要はありません。

      import ray 
      ##@resource_reference{"ray_resource.py"}
      @ray.remote
      def do_work(x):
          print('Ray says:', x)
          from ray_resource import fun
          fun()
          return x
      worker = do_work.remote("欢迎使用DataWorks+LindormRay解决方案")
      print(ray.get(worker))
  4. 本番のスケジューリングと運用保守:開発とデバッグが完了したら、このノートブックノードをコミットして発行します。DAG 内の Lindorm Ray ノードとして定期的にスケジューリングされます。

    • パラメーター化:コードでは、${bizdate} などの標準の DataWorks スケジューリングパラメーターを使用できます。

    • ログの確認:本番環境では、パフォーマンス問題を防ぐために、システムはデフォルトでログの先頭 1 MB のみを読み込みます。ログが途中で切れている場合、出力に Lindorm コンソールでタスクログ全体を確認するためのリンクが表示されます。

    • リソースの解放:スケジュールされた本番タスクが終了すると、Lindorm Ray タスクは終了状態になり、リソースを解放します。対話的な開発中は、カーネルを再起動するかノートブックを閉じて、タスクを終了してください。

付録:マジックコマンドのクイックリファレンス

マジックコマンド

説明

コンピューティングエンジン

o = %odps

PyODPS のエントリオブジェクトを取得します。

MaxCompute

mf_session = %maxframe

MaxFrame 接続を確立します。

%maxcompute_spark

Spark セッションを作成します。

MaxCompute Spark

%maxcompute_spark stop

Spark セッションをクリーンアップし、Livy セッションを停止します。

%maxcompute_spark delete

Spark セッションをクリーンアップし、Livy 構成を停止して削除します。

%%spark

Python セルで、既存の Spark コンピューティングリソースに接続します。

%emr_serverless_spark

Spark セッションを作成します。

EMR Serverless Spark

%emr_serverless_spark info

Livy ゲートウェイの詳細を表示します。

%emr_serverless_spark stop

Spark セッションをクリーンアップし、Livy セッションを停止します。

%emr_serverless_spark delete

Spark セッションをクリーンアップし、Livy 構成を停止して削除します。

%emr_serverless_spark refresh_token

個人用の開発環境の Livy トークンを更新します。

%adb_spark add

再利用可能な ADB Spark セッションを作成して接続します。

AnalyticDB for Spark

%adb_spark info

Spark セッション情報を表示します。

%adb_spark cleanup

現在の Spark 接続セッションを停止してクリーンアップします。

%lindorm_ray

Lindorm Ray 接続を確立します。

Lindorm Ray

%%lindorm_ray

Lindorm Ray 接続を確立し、依存関係のインストールやコードのアップロードなど、カスタムランタイム環境を構成します。

よくある質問

  • Q:ワークスペースリソースを参照すると、 ModuleNotFoundError または There is no file with id ... エラーが発生するのはなぜですか?

    A:次を確認してください:

    • データ開発 > リソース管理に移動し、MaxCompute Python リソースが保存されていることを確認します。本番環境でこのエラーが発生する場合は、リソースが発行済みであることを確認してください。

    • ノートブックエディターのツールバーで 再起動 をクリックし、リソースを再読み込みします。

  • Q:ワークスペースリソースを更新した後も、ノートブックで古いバージョンが使用されるのはなぜですか?

    A:DataStudio の設定で DataWorks › Notebook › Resource Reference: Download StrategyautoOverwrite に設定し、その後、ノートブックのツールバーで [カーネルを再起動] をクリックします。

  • Q:データセットを参照すると、開発環境で FileNotFoundError が発生するのはなぜですか?

    A:選択した個人開発環境で、データセットがマウントされていることを確認してください。

  • Q:開発環境ではデータセットを参照できますが、本番環境では Execute mount dataset exception! Please check your dataset config エラーが発生して失敗します。

    A:ノートブックノードの [スケジューリング設定] でデータセットがマウントされていること、および OSS データセットが承認済みであることを確認してください。

    データセットの構成エリアで、データセットのドロップダウンリストの下に赤いメッセージ「The current DataWorks resource group is not authorized」が表示される場合は、右側の [Confirm Authorization] リンクをクリックして権限を付与してください。

  • Q:個人開発環境のバージョンはどのように確認しますか?

    A:個人開発環境で CMD + SHIFT + P を押し、「ABOUT」を入力して現在のバージョンを表示します。機能に 0.5.69 以降が必要な場合は、表示されるアップグレードプロンプトで [ワンクリックアップグレード] を使用できます。

  • Q:Spark エンジンへの接続が失敗するのはなぜですか?

    A:次の手順でトラブルシューティングを行ってください:

    • 一般的な確認:ワークスペースの詳細ページで、コンピューティングリソースの一覧に移動してください。コンピューティングリソース (MaxCompute、EMR、または ADB) がワークスペースにバインドされており、アカウントに必要な権限が付与されていることを確認してください。

    • EMR Serverless SparkLivy ゲートウェイが作成されており、正しく稼働していることを確認してください。

    • AnalyticDB for Spark: ネットワークの問題のトラブルシューティングに重点を置いてください。vswitchIdsecurityGroupId が正しく構成されていること、および個人開発環境と AnalyticDB for Spark インスタンス間のネットワーク接続性が確保されていることを確認してください。セキュリティグループのルールを確認し、必要なポートで通信できることを確認してください。