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

リポジトリ内のファイルの読み取り

リポジトリ内のほかのファイルをトランスフォームのコンテキストに読み込めます。これは、トランスフォームのコードで参照するパラメーターを設定する際に役立つ場合があります。

まず、Python リポジトリ内の setup.py を編集します。

Copied!
1 2 3 4 5 6 7 setup( name=os.environ['PKG_NAME'], # ... package_data={ '': ['*.yaml', '*.csv'] } )

これにより、Python は yaml ファイルと csv ファイルをパッケージに含めます。 次に、Python トランスフォーム(例:以下の read_yml.py)と同じ場所に設定ファイル(たとえば config.yaml。csv や txt も使用できます)を配置します。

Copied!
1 2 3 4 5 6 7 - name: tbl1 primaryKey: - col1 - col2 update: - column: col3 with: 'XXX'

トランスフォーム read_yml.py 内で、以下のコードを使用してこのファイルを読み込めます。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 from transforms.api import transform_df, Input, Output from pkg_resources import resource_stream import yaml import json @transform_df( Output("/Demo/read_yml") ) def my_compute_function(ctx): stream = resource_stream(__name__, "config.yaml") docs = yaml.safe_load(stream) return ctx.spark_session.createDataFrame([{'result': json.dumps(docs)}])

プロジェクトの構造は次のようになります。

  • some_folder
    • config.yaml
    • read_yml.py

これにより、データセットに「result」という1列を持つ1行が出力され、その内容は次のようになります。

Copied!
1 [{"primaryKey": ["col1", "col2"], "update": [{"column": "col3", "with": "XXX"}], "name": "tbl1"}]