如何在阿里巴巴ODPS python SDK中使用Schema.from_lists方法创建schema?

How to create schema by using Schema.from_lists method in Alibaba ODPS python SDK?

我通常通过 table 列和可选分区进行初始化来创建模式。我了解通过阿里巴巴 ODPS python SDK 中的 Schema.from_lists 方法创建模式在 LOC 和性能方面要好得多。

我经常用来创建模式的代码是:

from odps.models import Schema, Column, Partition
columns = [Column(name='num', type='bigint', comment='the column')]
partitions = [Partition(name='pt', type='string', comment='the partition')]
schema = Schema(columns=columns, partitions=partitions)
print(schema.columns)

输出:

[<column num, type bigint>, <partition pt, type string>]

如何使用Schema.from_lists方法创建模式?

传递四个列表即可创建。

In [33]: Schema.from_lists(['num'], ['bigint'], ['pt'], ['string'])             
Out[33]: 
odps.Schema {
  num   bigint      
}
Partitions {
  pt    string      
}

缺点是这样就不能再指定列的注释了