在PyODPS DataFrame自定义函数中使用pandas、scipy和scikit-learn

PyODPS DataFrame允许在大数据环境中使用pandas、scipy和scikit-learn。通过MaxCompute的isolation功能,在sprint 27及更高版本中,用户可以上传python-dateutil、pytz、pandas、scipy、sklearn、six等依赖包。首先,找到并上传所有必要的whl和zip包,然后在代码中导入并使用这些库。确保运行时开启isolation,并指定使用的libraries。这样,自定义函数就可以顺利执行了。
摘要由CSDN通过智能技术生成

背景

PyODPS DataFrame 提供了类似 pandas 的接口,来操作 ODPS 数据,同时也支持在本地使用 pandas,和使用数据库来执行

PyODPS DataFrame 除了支持类似 pandas 的 map 和 apply 方法,也提供了 MapReduce API 来扩展 pandas 语法以适应大数据环境。

PyODPS 的自定义函数是序列化到 MaxCompute 上执行的,MaxCompute 的 Python 环境只包含了 numpy 这一个第三方包,用户常常问的问题是,如何在自定义函数里使用 pandas、scipy 或者 scikit-learn 这样的包含c代码的库?

现在,MaxCompute 在 sprint 27 及更高版本的 isolation,让在自定义函数中使用这些包成为可能。同时,
PyODPS也需要至少0.7.4版本 。接下来我会详细介绍使用步骤。

步骤

上传第三方包(只需做一次)

这个步骤只需要做一次,当 MaxCompute 资源里有了这些包,这一步直接跳过。

现在这些主流的 Python 包都提供了 whl 包,提供了各平台包含二进制文件的包,因此找到能在 MaxCompute 上能运行的包是第一步。

其次,要想在 MaxCompute 上运行,需要包含所有的依赖包,这个是比较繁琐的。我们可以看下各个包的依赖情况(删除表示已经包含)

包名 依赖
pandas numpy, python-dateutil, pytz, six
scipy numpy
scikit-learn numpy, scipy

所以,我们一共需要上传 python-dateutil、pytz、pandas、scipy、sklearn、six 这六个包,就能保证 pandas、scipy 和 scikit-learn 可用。

我们直接通过 http://mirrors.aliyun.co

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值