注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

FAQ

Code Workspaces で PySpark を使用できますか?

はい、Jupyter® Code Workspaces で PySpark を使用できます。ただし、ワークスペースのコンテナ内でローカルモードで実行され、利用可能な CPU とメモリーのみを使用します。分散 Spark クラスターでは実行されません。分散 Spark ワークロードの実行には、Pipeline Builder や Code Repositories などの Foundry アプリケーションを推奨します。

JupyterLab® Notebook に PySpark をインストールするには、ライブラリタブに移動し、pyspark と openjdk の両方をインストールします。次の OpenJDK バージョンに対応しています。

  • PySpark < 4.0.0: OpenJDK 8.x、11.x、または 17.x
  • PySpark 4.0.0 以降: OpenJDK 17.x または 21.x

java.lang.UnsupportedOperationException: getSubject is supported only if a security manager is allowed などのエラーが発生した場合は、使用している PySpark リリースに対応するバージョンに OpenJDK が固定されていることを確認してください。

次のコードを使用して Spark セッションを作成し、生の Parquet ファイルを Spark データフレームに読み込み、変換を適用します。この方法は、Code Repositories の PySpark トランスフォームで適用する PySpark 変換の下書きを作成する際に役立ちます。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 from foundry.transforms import Dataset from pyspark.sql import SparkSession import pyspark.sql.functions as F # Spark コンテキストを作成します。以下の例では、2 CPU、16 GB のワークスペースを示しています。 spark = (SparkSession.builder .appName("ParquetExample") .master("local[2]") # 利用可能な CPU 数に設定します。 .config("spark.driver.memory", "10g") # ドライバーのメモリーを、コンテナの合計メモリーの約50~65%に設定します。 .config("spark.driver.memoryOverhead", "4g") # オーバーヘッドメモリーを、コンテナの合計メモリーの約20~35%に設定します。 .config("spark.sql.shuffle.partitions", "6") # 必要に応じて、パーティション数を CPU の総数の約3倍に設定します。 .getOrCreate()) sc = spark.sparkContext # parquet ファイルの Foundry データセットをノートブックにダウンロードします。 parquet_foundry = Dataset.get("parquet_foundry_dataset") files = parquet_foundry.files().download() # ファイルを Spark データフレームに読み込みます。 spark_df = spark.read.parquet(*list(files.values())) # PySpark の変換を適用します。 df_processed = spark_df.filter(F.col("col1") == 1) # 出力データセットを書き込みます。 spark_output = Dataset.get("spark_output") spark_output.write_table(df_processed.toArrow())

Code Workspaces で API 呼び出しを実行できますか?

はい、外部システムを使用して Code Workspaces で API 呼び出しを実行できます。外部システムは、ワークスペースからのエグレスに推奨される方法として、ネットワークポリシーに取って代わりました。CBAC が有効な環境では、Control Panel で設定したネットワークポリシーを使用してください。

Code Workspaces はどの IDE に対応していますか?

Code Workspaces は現在、VS Code、JupyterLab®、RStudio® Workbench に対応しています。

コードビューアーにはどのコードが表示されますか?

コードビューアーには、リポジトリに保存されているコミット済みの状態が表示されます。VS Code、JupyterLab®、RStudio® Workbench、Code Repositories、またはローカル開発環境で行った変更は、コミットして同期した後にのみ表示されます。

コードビューアーには既存または実行中のワークスペースが必要ですか?

いいえ。エディターワークスペースを作成または起動しなくても、コードビューアーでリポジトリの一覧を見ることができます。

VS Code ワークスペースを起動するとコードビューアーが開くのはなぜですか?

デフォルトでは、停止中の VS Code ワークスペースを開くと、ワークスペースセッションがバックグラウンドで起動する間、コードビューアーが開きます。VSコードタブのアイコンにワークスペースのステータスが表示されます。VSコードタブを選択するまで、コードビューアーは開いたままになります。

この動作を無効にするには、エディターで続けるの手順に従います。

Code Workspaces で利用できないパッケージはどれですか?

セキュリティ上の理由により、次の Python パッケージは利用できません。

  • folium
  • pandasgui

上記のパッケージについて懸念がある場合は、Palantir の担当者にお問い合わせください。

リポジトリ内のコードが JSON 形式になっているのはなぜですか?

Code Repositories アプリケーションは、関連付けられた Code Workspaces から IPython 形式でコードを受け取ります。この形式では、コードがセル単位で JSON 形式として表示されます。

独自のパッケージを使用できますか?

はい。パッケージのインポートに関するドキュメントを参照してください。パッケージが組織の Conda/PyPI/CRAN チャネルでホストされている場合、Foundry でそのチャネルをプロキシし、プロジェクトで利用可能にすることができます。詳しくは、Palantir の担当者にお問い合わせください。

Code Workspace の元となる Code Repository にライブラリタブがないのはなぜですか?

Code Workspace にライブラリをインポートするには、ワークスペースの左側のパネルにあるパッケージタブを使用します。

Code Workspace に由来しないコードを Code Repositories で記述または編集できますか?

はい、Code Workspaces に由来するコードは、Code Repositories で直接編集できます。コミット後、Code Workspace の同期または変更をリセット機能を使用して、リモートの変更をワークスペースに取り込めます。

概念的には、Code Repositories は Code Workspaces のバージョン管理マネージャーとして、プルリクエスト、競合の解決、管理を扱い、コード開発は Code Workspaces で行うものと考えることができます。

同僚に表示される内容が自分と異なるのはなぜですか?

セキュリティ上の目的で、JupyterLab® または RStudio® で作業するユーザーは互いに隔離されています。そのため、同じ Code Workspace にアクセスするユーザーにも、それぞれ独自の環境が用意されます。共同作業は git ワークフローを通じて行います。最新のコードを同僚が利用できるようにするには、変更を同期するを選択して、元のコードリポジトリと変更を同期します。同僚が同期または変更をリセットを選択すると、その変更を利用できるようになります。同じワークスペースで複数のユーザーが作業する場合は、独立したブランチで作業することを推奨します。

git リポジトリにデータが同期されないようにし、git リポジトリのサイズを制限するため、デフォルトでは .gitignore を使用して一部のファイルを無視します。また、JupyterLab® の .ipynb ファイルからすべての出力を削除します。

R Markdown ファイルをレンダリングするために追加の LaTeX パッケージをインポートできますか?

はい。デフォルトでは、Code Workspaces には一般的な R Markdown ファイルのレンダリングに必要なもの(TinyTex-1 ↗ で定義されています)のみが事前にインストールされていますが、ほかの LaTeX パッケージを自身でインストールできます。

  1. TDS アーカイブをダウンロードまたは作成します。たとえば、CTAN ↗ から .tds.zip ファイルをダウンロードできます。
  2. TDS アーカイブを新しい Foundry データセットまたは既存の Foundry データセットにアップロードします。フォルダー内にファイルをドラッグアンドドロップすると、新しい Foundry データセットにアップロードできます。
  3. スキーマなしでデータセットにアップロードを選択します。同じデータセットに複数の TDS アーカイブを同時にアップロードできます。
  4. Code Workspaces で、データタブに移動し、既存のデータセットを読み込むに移動します。TDS アーカイブを含むデータセットを選択します。
  5. 必要に応じて、データセットのエイリアスを更新します。この例では、データセットのエイリアスを my_latex_packages と名付けたものとします。
  6. コードスニペットをコピーして .Rprofile に貼り付け、ファイルを正しい場所に抽出する処理も行うように更新します。以下のスニペットの my_latex_packages を、データセットのエイリアスに置き換える必要があります。
library(foundry)
my_latex_packages_files <- datasets.list_files("my_latex_packages")
my_latex_packages_local_files <- datasets.download_files("my_latex_packages", my_latex_packages_files)
texmflocal <- system("kpsewhich --var-value TEXMFLOCAL", intern = TRUE)
sapply(my_latex_packages_local_files, function(tds_file) { unzip(tds_file, exdir = texmflocal) })
  1. これで、R Markdown のヘッダーにパッケージを含めて使用できるようになります。
headers-include:
 - \usepackage{my_package}

R Markdown ファイルでカスタムフォントを使用できますか?

はい。

  1. 使用する TTF ファイルをダウンロードまたは作成します。
  2. TTF ファイルを新しい Foundry データセットまたは既存の Foundry データセットにアップロードします。フォルダー内にファイルをドラッグアンドドロップすると、新しい Foundry データセットにアップロードできます。
  3. スキーマなしでデータセットにアップロードを選択します。同じデータセットに複数の TTF ファイルを同時にアップロードできます。
  4. Code Workspaces で、データタブに移動し、既存のデータセットを読み込むに移動します。TTF ファイルを含むデータセットを選択します。
  5. 必要に応じて、データセットのエイリアスを更新します。この例では、データセットのエイリアスを my_fonts と名付けたものとします。
  6. コードスニペットをコピーして R コンソールで実行し、ファイルをバージョン管理で追跡できるようにリポジトリにコピーします。以下のスニペットの my_fonts を、データセットのエイリアスに置き換える必要があります。
my_fonts_files <- datasets.list_files("my_fonts")
my_fonts_local_files <- datasets.download_files("my_fonts", my_fonts_files)
dir.create("fonts")
file.copy(unlist(my_fonts_local_files), "fonts")
  1. これで、R Markdown の推奨事項に従って /home/user/repo/fonts ディレクトリ内のフォントを参照し、HTML または PDF 出力で使用できるようになります。

HTML のフォントを変更するには、カスタム CSS ↗ で font-family を設定します。

PDF のフォントを変更するには、プリアンブル内のカスタム LaTeX コード ↗で ewfontfamily を使用して、LaTeX にフォントを読み込めます。

コードの実行中に Jupyter® ワークスペースが一時停止しないようにするにはどうすればよいですか?

%%keep_alive セルマジックを使用すると、セル内のコードの実行中に Code Workspaces が Jupyter® ノートブックを一時停止するのを防げます。

Copied!
1 2 3 %%keep_alive long_running_process()

これにより、セルのコードが実行されている間、最大24時間セルの実行が継続されます。ブラウザーのタブを閉じるか、長時間操作せずに放置すると、JupyterLab® はセルの出力の表示と保存を停止します。後でセルの出力を表示したい場合は、%%capture セルマジックを使用して出力を変数に格納できます。

Copied!
1 2 3 4 %%keep_alive %%capture cell_output long_running_process()

別のセルで、上記の変数の出力をファイルに書き込み、後で表示できるようにします。

Copied!
1 2 3 with open('cell_output.txt', 'w+') as f: f.write(cell_output.stdout) f.write(cell_output.stderr)

Jupyter または RStudio の Code Workspace からファイルをダウンロードするにはどうすればよいですか?

管理者が設定したダウンロード制限を確実に適用するため、Palantir プラットフォームでは IDE 標準のファイルダウンロード機能が無効になっています。

ファイルをダウンロードするには、ファイルを Foundry データセットに書き戻します。これを行うには、Code Workspaces のサイドバーで、データタブ、新しいデータセットにデータを書き込むの順に移動し、新しいデータセットの名前を入力します。データセットのエイリアスを確認したら、データセットの種類として表形式以外のデータセットを選択し、アップロードするファイルまたはディレクトリの場所を入力して、生成されたコードスニペットを実行します。

ファイルが Foundry データセットにアップロードされたら、データセットのリンクを選択してデータセットプレビューに移動し、そこからファイルをダウンロードできます。 管理者が、プラットフォームからデータをエクスポートする前に理由の提示を求めたり、エクスポートするデータ量を制限したりする場合があることに留意してください。


RStudio® および Shiny® は Posit™ の商標です。

Jupyter®、JupyterLab®、および Jupyter® のロゴは NumFOCUS の商標または登録商標です。

記載されている第三者の商標(ロゴやアイコンを含む)は、すべてそれぞれの所有者に帰属します。提携や推奨を示唆するものではありません。