我收到这个错误:
DataSetError: Failed while loading data from data set SQLQueryDataSet(load_args={}, sql=select * from table)
当我运行(在kedro jupyter笔记本内(:
%reload_kedro
c: \users\name.virtualenvs\pipenv_kedro\lib\site packages\ipykernel\ipkernel.py:283:弃用警告:should_run_async
将来不会自动调用transform_cell
。请将结果传递给transformed_cell
参数,以及在IPython 7.17及更高版本的preprocessing_exc_tuple
中转换期间发生的任何异常。和should_run_async(代码(2021-04-21 15:29:12278-kedro.framework.session.store-INFO-read()
未为BaseSessionStore
实现。假设仓库为空。2021-04-21 15:29:12696-根-信息-**Kedro项目2021-04-21 15:29:12698-根-信息-定义的全局变量context
、session
和catalog
2021-04-21 15:29:12703-根-信息-注册线魔术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()
如何修复此错误?
我认为差异来自凭据。在你的目录中你有
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