1

Great Expectations プロジェクトのフォルダー構造は次のとおりです。

great_expectations/
    dataset/
        __init__.py
        oracle_dataset.py
    datasource/
        __init__.py
        oracle_datasource.py
    great_expectations.yml

datasource/__init__.py:

from .oracle_datasource import OracleDatasource

dataset/__init__.py:

from .oracle_dataset import OracleDataset

great_expectations.yml:

datasources:
  db_name:
    credentials: ${db_name}
    data_asset_type:
      class_name: OracleDataset
      module_name: .dataset
    class_name: OracleDatasource
    module_name: .datasource

Python の相対インポートが非常に紛らわしいという事実に加えて、great_expectations コマンドを実行するときにどの参照ディレクトリが使用されるのかもわかりません。試してみると:great_expectations suite newエラーメッセージが表示されます:ValueError: no package specified for '.datasource' (required for relative module names)

上記の .yml は、以下のすべてを試した後でも進むべき道だと思います。initまたは他の場所で処理する必要がある相対インポートについて、私が理解していないことがあると思います。

編集:私も試しました:

datasources:
  db_name:
    credentials: ${db_name}
    data_asset_type:
      class_name: OracleDataset
      module_name: great_expectations.dataset
    class_name: OracleDatasource
    module_name: great_expectations.datasource

The module: 'great_expectations.datasource' does not contain the class: 'OracleDatasource'.

このメッセージは、great_expectations ライブラリを探していることを意味していると思います。ライブラリに含まれているクラス名を試してみて、これを確認しました。

この:

datasources:
  db_name:
    credentials: ${db_name}
    data_asset_type:
      class_name: OracleDataset
      module_name: dataset
    class_name: OracleDatasource
    module_name: datasource

No module named "datasource" could be found in the repository. Please make sure that the file, corresponding to this package and module, exists and that dynamic loading of code modules, templates, and assets is supported in your execution environment. This error is unrecoverable.

これは、ライブラリの外を見ているが、ファイルが見つからないことを意味すると思います。

この:

datasources:
  db_name:
    credentials: ${db_name}
    data_asset_type:
      class_name: OracleDataset
      module_name: dataset.oracle_dataset
    class_name: OracleDatasource
    module_name: datasource.oracle_datasource

No module named "datasource.oracle_datasource" could be found in the repository. Please make sure that the file, corresponding to this package and module, exists and that dynamic loading of code modules, templates, and assets is supported in your execution environment. This error is unrecoverable.

これは、ライブラリの外を見ているが、ファイルが見つからないことを意味すると思います。

4

1 に答える 1