问题标签 [bonobo-etl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
112 浏览

pip - 使用 ETL bonobo 配置 vagrant Ubuntu 17.10

我有以下sh脚本来提供我想要的安装:

一次,我运行vagrant provision它似乎一切正常,因为我得到以下输出:

但是当我进入虚拟机的 ssh 会话并运行 bonobo 版本时,我得到:

为什么安装失败?

0 投票
1 回答
692 浏览

python - 使用 Bonobo-ETL 将字典写入 CSV

我正在尝试 Bonobo,以 dict 格式获取数据源,然后写入 CSV 文件。

但是,当我向 bononbo.CsvWriter 生成一个 dict 时,结果是一个包含表示为字符串的 dict 的单个字段。

这可以使用转换脚本来复制:

同样,显式使用 dict 将产生相同的结果:

上面的结果将是

而不是预期的

0 投票
1 回答
475 浏览

python - 使用 Bonobo 写入绝对文件路径

我正在使用标准的 Bonobo 编写器进行文件输出(CsvWriter 等)。

如果这些被传递了一个绝对路径('/data/output.csv'),他们将假定它是相对的,从而触发'资源未找到'错误。

这在 Docker 容器中使用 Bonobo 时尤其会出现问题,因为写入绝对路径是卷安装点的常见模式。

让 Bonobo 接受绝对路径的最佳方法是什么?

0 投票
1 回答
132 浏览

python - bonobo 方法在覆盖后失败

我正在使用一个名为 bonobo 的轻型 ETL 库。csv writer bonobo.CsvWriter 类有一个工厂方法:

与文档:

我想添加一些额外的参数来自定义我的 csv 文件,所以我尝试这样覆盖它:

当我将节点添加到链中时,程序显示:

任何提示表示赞赏。

更新:

与此同时,当我尝试做

它抛出错误:

0 投票
1 回答
200 浏览

python - 在 Bonobo 中使用条件服务的最佳方式是什么?

我想使用 Bonobo 将数据从一个 Postgres 数据库移动到不同服务上的另一个数据库。我已配置连接,并希望在提取期间使用一个,在加载期间使用一个。

这是我的测试设置:

我不确定更改连接的最佳位置在哪里,或者如何实际进行。

提前致谢!

0 投票
1 回答
412 浏览

python-3.x - Bonobo:如何使用多个数据源?

我第一次使用Bonobo 。我能够找出基本的例子。我很想知道如何在提取步骤中输入两种不同类型的数据?假设我正在从两个不同的站点抓取数据,如何将它们添加到管道中?

谢谢

0 投票
1 回答
329 浏览

python - 从 MySQL(SQLAlchemy) 读取后需要帮助编写 bonobo XML writer 转换

所以我对倭黑猩猩有点陌生,我想弄清楚。我对 python 也有点陌生,所以这个项目有点吓人。我正在尝试将 mysql(使用 SQLAlchemy 作为服务)输入流转换为 XML 输出。我已经成功地设置了我的数据库流,但是对于如何创建一个将迭代我的选择结果的转换,我有点迷茫。有人知道这方面的一些例子吗?

官方示例只是调用内置的编写器函数(CsvWriter 等)。我需要写一个能写出 XML 的东西。我已经查看了内置倭黑猩猩编写器功能的内部代码,但我仍然对如何编写自己的编写器感到困惑。有谁知道对于初学者来说足够简单的自定义编写器的一些示例。

或者也许可以编写一个非常简单的示例的快速示例来迭代查询的结果?

我在用

作为我链中的第一次转换,我已经能够漂亮地打印我选择的结果......所以这是有效的。我只需要一个迭代集合的示例转换。

0 投票
1 回答
97 浏览

python - Cookiecutter-bonobo 初始化失败

我是 Stack Overflow 的新手,如果问题的结构需要改进,我深表歉意。

我第一次尝试在我的 Mac 上的 cookiecutter-bonobo 中创建一个新项目(最近安装了 anaconda3 来替换 anaconda2,所以我使用的是 python3)。我正在遵循这些说明https://www.bonobo-project.org/with/cookiecutter。到目前为止,我已经使用 pip 成功安装了 cookiecutter 和 bonobo:

但是在命令行中执行以下步骤时会出错:

错误读取

所需的结果是它创建一个目录,其中包含某些有用的文件。我在https://github.com/python-bonobo/bonobo/issues/235发现了一个非常相似的问题,但建议的解决方案对我不起作用。

谢谢。

0 投票
1 回答
469 浏览

python - 使用 bobobo-etl 加载多个文件

我是 bonobo-etl 的新手,我正在尝试编写一个一次加载多个文件的作业,但我无法让 CsvReader 使用@use_context_processor注释。我的代码片段:

当我运行这项工作时,我得到<bonobo.nodes.io.csv.CsvReader object at 0x7f849678dc88>的不是 CSV 的行。

如果我像这样对阅读器进行硬编码graph.add_chain(bonobo.CsvReader(path='test1.csv',delimiter='|'),load),它就可以工作。

任何帮助,将不胜感激。

谢谢你。

0 投票
1 回答
621 浏览

python - 为什么 Bonobo 的 CsvReader() 方法产生元组而不是字典?

我似乎无法让 Bonobo ETL 库中的 CsvReader 生成元组以外的任何内容。该文档似乎表明它应该产生字典而不是元组,但尽我所能尝试我似乎无法让它传递除元组以外的任何东西。我真的很想访问附加到每个值的列名。它会抛出一个错误,提示在传递时存在列名,但在我定义的转换方法中,只有值本身可用。

它与打印机方法的参数有关吗?我知道,*csv由于参数解包了可迭代的参数,但任何其他可能的参数声明只会引发 typeError。

有什么建议么?完全避免使用内置的 Bonobo CsvReader 并创建一个使用 DictReader 或其他东西的提取方法会更好吗?

*csv编辑:这是使用除作为打印机()的参数之外的任何其他内容引发的错误。

CRIT|0002|bonobo.execution.contexts.base←[90m:←[39m ←[90m│ ←[39mTraceback(最近一次调用最后):←[90m│←[39m 文件“X:\Programming\pyWarehouse\warehouse_env\ lib\site-packages\bonobo\config\processors.py",第 102 行,我正在调用 ←[90m│ ←[39m bound = self._bind(_input) ←[90m│ ←[39m 文件“X:\Programming\pyWarehouse\warehouse_env\lib\site-packages\bonobo\config\processors.py”,第 89 行, 在 _bind ←[90m│ ←[39m return bind(*self.args, *_input, **self.kwargs) ←[90m│ ←[39m File "C:\Users\Accounting Admin\AppData\Local\Programs\ Python\Python37-32\lib\inspect.py", line 3002, in b ind ←[90m│ ←[39m return args[0]._bind(args[1:], kwargs) ←[90m│ ←[39m 文件“C:\Users\Accounting Admin\AppData\Local\Programs\Python\Python37-32\lib\inspect.py”,第 2923 行,in _bind ←[90m│ ←[39m raise TypeError('too many positional arguments' ) from None ←[90m├←[39m←[100m←[97m TypeError ←[39m←[49m ←[97mtoo many positional arguments←[39m ←[90m│ ←[39m]上面的异常是下面异常的直接原因:←[90m│ ←[39mTraceback(最近一次调用最后):←[90m│ ←[39m 文件“X:\Programming\pyWarehouse\warehouse_env\lib\site-packages\bonobo\execution\contexts\node.py”,行102、循环中 ←[90m│ ←[39m self.step() ←[90m│ ←[39m 文件“X:\Programming\pyWarehouse\warehouse_env\lib\site-packages\bonobo\execution\contexts\node.py” ,第 132 行,在步骤 ←[90m│ ←[39m 结果 = self._stack(input_bag) ←[90m│ ←[39m 文件“X:\Programming\pyWarehouse\warehouse_env\lib\site-packages\bonobo\config\processors .py”,第 112 行,我在步骤 ←[90m│ ←[39m 结果 = self._stack(input_bag) ←[90m│ ←[39m 文件“X:\Programming\pyWarehouse\warehouse_env\lib\site-packages\bonobo\config\processors.py”,第 112 行,我在步骤 ←[90m│ ←[39m 结果 = self._stack(input_bag) ←[90m│ ←[39m 文件“X:\Programming\pyWarehouse\warehouse_env\lib\site-packages\bonobo\config\processors.py”,第 112 行,我调用 ←[90m│ ←[39m )) 从 exc ←[90m└←[39m←[100m←[97m bonobo.errors.UnrecoverableTypeError ←[39m←[49m ←[97m输入] 没有绑定到节点签名。Args: () 输入: Bag(id='1', name='Alice',age='20', height='62', weight='120.6') Kwargs: {} Signature: (csv)←[39m