【MaxCompute 常见问题】 PyODPS

PyODPS


Python 连接 MaxCompute 常见使用问题

1. PyODPS数据类型如何设置?

如果您使用 PyODPS,可以通过下列方法打开新数据类型开关: 如果通过 execute_sql 方式打开新数据类型,可以执行 o.execute_sql('setodps.sql.type.system.odps2=true;query_sql', hints={"od ps.sql.submit.mode" : "script"})。 如果通过 Dataframe 打开新数据类型,例如 persist、execute、to_pandas 等方法,可通过hints 参数设置。下图中设置方法仅针对单个作业生效。

【MaxCompute 常见问题】 PyODPS

如果通过 Dataframe 调用,且需要全局生效,需要使用 Option 参数 options.sql.use_odps2_exte nsion = True。


2. PyODPS创建表时怎么添加分区?

使用 create_table()方法创建表就可以,具体参考文档


3. PyODPS操作 SQL 的示例代码有获取记录数的操作,放到MaxCompute 中运行的就提示没有 count 属性了,怎么解决?

Dataworks 上默认未开启 Instance Tunnel,即 instance.open_reader 默认使用 Result 接口,最多可以获取一万条记录。开启 Instance Tunnel 后,可以通过 reader.count 获取记录数。


4. 请问 MaxCompute 的 DataFrame 拿到某一列的值转换成 list 应该如何操作?

print iris['sepallength'].tolist().execute()[0:5]


5. PyODPS节点是否支持 python 3?

DataWorks 在2020.05.21 新增 PyODPS 3 节点,可参考官方文档进行操作。


6.使用 PyODPS 统计表里面某个字段的空值率的时,是用 execute_sql 还是 DataFrame?

DataFrame 聚合性能更高一些,所以推荐使用 DataFrame 来执行聚合操作。具体 DataFrame 如何聚合操作可参考官方文档


7. 使用 PyODPS 如何下载全量数据?

PyODPS默认不限制从 Instance 读取的数据规模。但是对于受保护的 Project,通过 Tunnel 下载数据将受限。此时,如果未设 options.tunnel.limit_instance_tunnel,则数据量限制会被自动打开,可下载的数据条数受到 Project 配置限制,通常该限制为 10000 条。如果您需要手动限制下载数据的规模,可以为 open_reader 方法增加limit 选项,或者设置 options.tunnel.limit_instance_tunnel = True


8. MaxCompute Python UDF 如何开启 Python 3?

在执行 Python 3 UDF 的 SQL 语句前增加 set odps.sql.python.version=cp37;语句一起执行,即可开启 Python 3。


>>快来点击免费下载《阿里云MaxCompute百问百答》了解更多详情!<<


上一篇:AfxExtractSubString 函数的相关问题


下一篇:HiveQL 性能优化笔记