0

我收到此错误:

DataSetError: Failed while loading data from data set SQLQueryDataSet(load_args={}, sql=select * from table)

当我运行时(在 kedro jupyter notebook 中):

%reload_kedro

c:\users\name.virtualenvs\pipenv_kedro\lib\site-packages\ipykernel\ipkernel.py:283:DeprecationWarning:以后should_run_async不会transform_cell自动调用。请将结果传递给参数以及在 IPython 7.17 及更高版本中transformed_cell转换期间发生的任何异常。preprocessing_exc_tuple和 should_run_async(code) 2021-04-21 15:29:12,278 - kedro.framework.session.store - INFO -read()未实现BaseSessionStore。假设空店。2021-04-21 15:29:12,696 - 根 - 信息 - ** Kedro 项目项目 2021-04-21 15:29:12,698 - 根 - 信息 - 定义的全局变量contextsession2021-04-21 catalog 15:29:12,703 - root - INFO - 注册线魔法run_viz

然后这个:

catalog.list()
#['table', 'parameters']
catalog.load('table')

我的 catalog.yml 文件包含:

table:
  type: pandas.SQLQueryDataSet
  credentials: secret
  sql: select * from table
  layer: raw

但是,当我运行它时(在同一个 kedro jupyter 笔记本中),我能够撤回预期的结果:

from kedro.extras.datasets.pandas import SQLQueryDataSet

sql = "select * from table"
credentials = {
    "con": secret
}
data_set = SQLQueryDataSet(sql=sql,
                           credentials=credentials)

sql_data = data_set.load()

我该如何解决这个错误?

4

1 回答 1

0

我认为差异来自凭据。在您的目录中,您有

table:
  type: pandas.SQLQueryDataSet
  credentials: secret

但在你正在测试的笔记本中

credentials = {
    "con": secret
}

yaml 文件中映射的值应与条目的名称匹配,credentials.yml例如

# in catalog.yml
table:
  type: pandas.SQLQueryDataSet
  credentials: db_creds

# in credentials.yml
db_creds:
    con: secret

于 2021-04-22T10:33:56.853 回答