注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
トランスフォームは、1つ以上の入力を受け取り、単一の出力を返すロジックです。入力と出力には Foundry データセットまたはモデルを使用できます。
Code Workbook は現在、3種類のトランスフォームをサポートしています。
Code Workbook で新しいトランスフォームを追加する方法はいくつかあります。
グラフの左上にある新しい変換ボタンを使用すると、追加するトランスフォームの種類を選択できます。たとえば、Python コードを選択すると新しい Python コードノードが追加され、Templates を選択するとテンプレートブラウザーが開きます。

または、グラフ上の既存のトランスフォームにカーソルを合わせ、表示される青い + ボタンをクリックして、選択用のドロップダウンを開きます。新しく作成されたトランスフォームは、選択したトランスフォームの子になります。

Code Workbook のトランスフォームは、データセットとして保存できます。詳しくは、データの保存を参照してください。
データセットとして保存されていないトランスフォームは、ワークブック固有のエイリアスで識別されます。このエイリアスを使用して、コード内でトランスフォームを参照できます。入力データセットと、データセットとして保存されたトランスフォームについては、Code Workbook はデータセットごとに2つの異なる名前を表示します。基になる Foundry データセットの名前と、ワークブック固有のエイリアスです。

エイリアスには、いくつかの利点があります。
titanic_historical、もう一方を titanic_daily_feed にできます。データセット名またはエイリアスを編集するには、ロジックパネルで名前をクリックし、新しい名前を入力して、編集が終わったら Enter キーを押します。データセット名またはエイリアスを変更すると、もう一方の名前も自動的に更新するかどうかを確認するダイアログが表示されます。
いずれかのトランスフォームをクリックすると、ロジックパネルが開きます。入力を追加するには、上部の入力バーにある + ボタンをクリックし、目的の入力をクリックします。

複数の入力を追加するには、+ の隣にあるボタンを使用します。
コードトランスフォームは、現在のワークブックで使用している言語の基本構造があらかじめ入力されたコードエディターとして表示されます。各言語でのコードの記述に関する詳細は、言語のドキュメントを参照してください。
グローバルコードペインでは、ワークブック内の各コードトランスフォームの前に実行するコードを定義できます。グローバルコードペインでは、ワークブック内のすべてのトランスフォームで利用可能な変数と関数を定義できます。
テンプレートトランスフォームでは、ロジックパネルにテンプレートパラメーターを編集するフォームが表示されます。
グラフ上の手動入力ボタンをクリックして、手動入力ノードを追加します。

手動入力タブでデータを入力します。現在サポートされている列のデータ型は、Double、Integer、ブール値、文字列です。サポートされるのは500行のみです。
コピーして貼り付けることで、ほかの場所から簡単にデータを取り込めます。

下部のパネルで実行を選択して、選択したトランスフォームを実行します。下流のすべてのトランスフォームを実行するには、矢印アイコンを選択し、すべての下流を実行を選択します。
トランスフォームを実行するには、ワークブックの編集権限に加え、ワークブックが使用するいずれかのデータセットで使用されているすべてのマーキングへのアクセス権が必要です。
コードをすばやく実行するためのショートカットキーもいくつか利用できます。? を入力すると、ショートカットキーの一覧が表示されます。
多数のトランスフォームを一度に実行する方法は2つあります。
トランスフォームの実行中は、print による出力がログタブにストリーミングされます。これにより、トランスフォームの途中で出力を表示し、トランスフォームがまだ実行中でも結果を確認できます。これは、デバッグやロジックの実行時間の計測に役立ちます。
データセットとして保存した際に、コードで適用したデータの並べ替えが保持されない場合があります。つまり、データを並べ替えるトランスフォームを実行しても、データセットとして表示したときにはその順序で並んでいない場合があります。ただし、トランスフォーム内のほかの操作は適用されています。
グラフまたは全画面エディターで作業する際は、ノード下部のタブを使用して、トランスフォームの入力と出力を切り替えます。
入力タブを使用して、トランスフォームへの入力を表示したり、入力を追加したり、入力タイプを変更したりできます。
ほかの Spark ベースのアプリケーションと同様に、Code Workbook はデフォルトではデータセットの読み取り時に行の順序を保持しません。分析に特定の行の順序が必要な場合は、コードでデータを並べ替えてください。

ノードの言語ごとに、次の入力タイプが利用可能です。
| ノードの言語 | 利用可能な入力タイプ |
|---|---|
| Python | Spark データフレーム、Pandas データフレーム、Python トランスフォーム入力、オブジェクト |
| SQL | Spark データフレーム |
| R | Spark データフレーム、R トランスフォーム入力、R data.frame、オブジェクト |
新しいトランスフォームを追加すると、その入力トランスフォームには、新しいトランスフォームの言語と各入力トランスフォームのタイプに基づくデフォルトの入力タイプが設定されます。詳細は次のとおりです。
| 入力トランスフォームのタイプ | 下流のトランスフォームの言語 | デフォルトの入力タイプ | 追加の詳細 |
|---|---|---|---|
| スキーマなしのインポート | Python | Python トランスフォーム入力 | |
| R | R トランスフォーム入力 | ||
| SQL | Spark データフレーム | スキーマのない入力トランスフォームを持つ SQL ノードを作成することはできますが、SQL ノードは Spark データフレーム入力のみをサポートするため、スキーマのない入力の分析には適していません。 | |
| スキーマありのインポート | Python | Spark データフレーム | |
| R | R data.frame | ||
| SQL | Spark データフレーム | ||
| モデルを含むカスタムファイル形式でのインポート | Python | オブジェクト | 詳細については、モデルのトレーニングチュートリアルを参照してください。Code Workbook のオブジェクト入力タイプはカスタムファイル形式であり、オントロジーのオブジェクトとは関係ありません。 |
| R | オブジェクト | 詳細については、モデルのトレーニングチュートリアルを参照してください。Code Workbook のオブジェクト入力タイプはカスタムファイル形式であり、オントロジーのオブジェクトとは関係ありません。 | |
| SQL | Spark データフレーム | カスタムファイル形式の入力トランスフォームを持つ SQL ノードを作成することはできますが、SQL ノードは Spark データフレーム入力のみをサポートするため、カスタムファイル形式の入力の分析には適していません。 | |
| 派生ノード | 該当なし | 入力ノードの出力タイプ | 入力ノードの出力タイプが派生ノードの言語と互換性がない場合、派生ノードには、インポートノードのタイプについて上記で定義されたデフォルトが使用されます。たとえば、ノード A が Pandas データフレームを返し、派生ノード B が R ノードの場合、ノード B はデフォルトでノード A を R data.frame として読み取ります。 |
Code Workbook でトランスフォームを実行すると、結果の形式を確認するために50行のプレビューが計算されます。このプレビューは、データセットの Foundry への書き込みが完了する前にプレビュータブに表示されます。データセットが Foundry に永続化されると、プレビュータブは結果全体に更新されます。
トランスフォームで使用する言語に応じて、プロットライブラリを使用し、Code Workbook のユーザーインターフェースに伝播される可視化を返すことができます。各言語での実行方法の詳細については、言語のドキュメントを参照してください。
生成された可視化はデフォルトでグラフに表示され、下部の可視化タブでも利用可能です。

コンテキストメニューを使用して、グラフ内の表示をテーブルモードとグラフモードの間で切り替えることができます。

可視化タブでは、グラフを画像としてダウンロードしたり、レポートに追加したりできます。これらの操作はコンテキストメニューからも利用可能です。

トランスフォームの実行による print 文(標準出力)、警告およびエラー(標準エラー出力)を表示します。標準エラー出力がある場合は、ログタブが自動的に選択され、警告またはエラーの出力があることを知らせる小さなコールアウトが表示されます。

データセットの説明を更新します。説明を更新すると、すべてのブランチで説明が更新されます。説明はデータセットを開くビューでも利用可能です。
Markdown を使用して説明のスタイルを設定し、右クリック(アクション)メニューで説明文表示を有効にすると、説明をグラフ内に表示できます。ワークブック内のすべてのノードの説明を表示するには、ヘッダーのツールの歯車アイコンをクリックし、すべての説明を表示を選択します。
モデルを返すトランスフォームは、自動的にモデルとして Foundry に書き込まれるため、Foundry ML インターフェースを使用できます。各言語でのモデルの使用方法の詳細については、言語のドキュメントを参照してください。
一部の変換は非決定論的です。つまり、入力データと変換ロジックが同じでも、異なる結果を返します。非決定論的なトランスフォームにつながる可能性がある関数には、現在のタイムスタンプ、行番号、単調増加する ID を取得する関数や、重複する値を含む列で並べ替えた後の変換などがあります。
Code Workbook でトランスフォームを実行すると、2個のジョブが開始されます。1個のジョブは50行のプレビューを計算し、もう1個のジョブはデータセット全体に対する変換を計算して結果を Foundry に書き込みます。非決定論的なトランスフォームがある場合、50行のプレビューに表示される結果は、Foundry データセット内の結果と一致しない可能性があります。
変換内で非決定論的なコードを実行する場合、データフレームは必ずしも実体化されるわけではありません。たとえば、トランスフォーム B と C の親である非決定論的なトランスフォーム A があるとします。Code Workbook 内から各変換を個別に実行すると、各データセットが順番に Foundry に書き込まれ、トランスフォーム B と C の間で一貫した結果になります。ただし、A で「下流をすべて実行」を選択した場合、B と C の実行時に A が必ずしも実体化されるわけではないため、結果が競合する可能性があります。Data Lineage 内からビルドを実行する場合も、各データセットが実体化されて順番に計算されるため、これを防ぐことができます。Pandas データフレームに変換することでも同様に防げます。
非決定論的な変換につながる関数の例には、current_date()、current_timestamp()、row_count() がありますが、ほかの関数も非決定性につながる可能性があります。予期しない動作につながる可能性がある Spark の変換の計算方法については、Apache Spark のドキュメント ↗を参照してください。