数据迁移实用程序

odo-fixpandas20的Python项目详细描述


Build StatusDocumentation Status

https://binstar.org/blaze/odo/badges/build.svghttps://binstar.org/blaze/odo/badges/version.svg

python中的数据迁移

Documentation

示例

ODO在不同容器之间迁移数据

>>>fromodoimportodo>>>odo((1,2,3),list)[1,2,3]

它在小型内存容器(如上所述)和大型内核外容器上运行 容器(如下所示)

>>>odo('myfile.hdf5::/data','postgresql://user:pass@host::my-table')Table('my-table',MetaData(bind=Engine(postgresql://user:****@host)),...)

ODO利用现有的Python生态系统。上面的例子使用 sqlalchemy用于SQL交互,h5py用于HDF5交互。

方法

ODO使用小型数据转换功能在 键入对。网络如下:

odo conversions

每个节点都是一个容器类型(如pandas.DataFramesqlalchemy.Table)并且每个有向边都是一个转换或 将一个容器附加到另一个容器中。我们注释这些函数/边 相对成本。

这种网络方法允许odo在任何 两种类型(谢谢networkx)。出于性能原因,这些功能通常 利用非python系统,如numpy数组或本机CSV->SQL加载 功能。odo不仅仅依赖于python迭代器。

这种网络方法也很健壮。当库丢失或运行时 出现错误odo可以绕过这些洞并找到新路径。

这种网络方法是可扩展的。编写小函数和 将它们注册到整个图形中。下面的例子展示了我们 从pandas.DataFrame转换为numpy.ndarray

fromodoimportconvert@convert.register(np.ndarray,pd.DataFrame,cost=1.0)defdataframe_to_numpy(df,**kwargs):returndf.to_records(index=False)

我们用目标和源类型以及 相对成本。这个装饰物建立了一个合同 函数必须实现,在本例中是使用fastDataFrame.to_records 方法。对于{ TT12}$,存在类似的函数,以添加到现有数据中,并且 resource用于uri解析。

  • convert:将数据集转换为新容器
  • ^ TT12}$:将数据集添加到现有容器
  • resource:给定一个uri,找到适当的数据资源
  • odo:根据输入调用上面的一个。 例如odo((1, 2, 3), list) -> convert(list, (1, 2, 3))L = []; odo((1, 2, 3), L) -> append(L, (1, 2, 3))

最后,odo还知道哪些容器必须驻留在内存中,以及 但事实并非如此。在上图中,红色的节点对 大于内存数据集。两个核心外数据集之间的转换 仅在红色节点的子图上操作。

许可证

新的疯牛病。见License File

历史记录

odo是从Blaze项目中计算出来的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Springdata,按视图映射的只读字段   java将会话变量传递给MessageSource   java存储库未与MongoDB和spring自动连接   爪哇为什么我的蚂蚁不动?   如何用一个使用Java泛型的方法替换这些特定于类型的方法?   java画布。半径<1时绘制倒圆   更新m2e项目时出现java错误消息   java如何停止声音   java如果Android活动位于前台,那么向其发送通知意图的合适方式是什么?   借用时java DBCP2超时   java Android apk无法使用PHP通过3g检索数据,在wifi上工作正常   java高亮显示日历视图事件中数据库中的列表数据   java解析一些从php到安卓的JSON时出现问题   java从struts2调用ajax来填充div   java无法正确显示数据库的回迁项   使用Java的selenium Appium iOS自动化:所有具有可访问性ID的元素   java不正确的Linux可用空间   java Else条件在我的JSP中似乎不起作用   java云消息传递(GCM到FCM)