Table
Table
类代表ODPS中的表,可以用于进行表操作,比如表的查询、分区操作等。下面是Table
类的使用说明。
概览
创建表实例对象
要操作表,首先需要创建一个表的实例对象。
注意,获取表实例是一个lazy操作,即只有当调用Table
类的其他方法时,才会真正获取表的元数据信息。同时,只有表真实存在,才能获取到表实例。
Table table = odps.tables().get("table_project", "table_name");
当开启Schema功能后,可以传入schema参数,来获取指定Table实例。
Table table = odps.tables().get("table_project", "schema_name", "table_name");
表基本信息
Table
作为一个实现lazyload
功能的对象,只有在调用以下方法时,才会进行网络通信,获取真正的元数据信息。
同时,我们也可以手动调用reload()
方法,来达到同样的效果。
table.reload();
除非手动触发reload()
方法,否则Table在reload
一次之后默认使用缓存。
获取表名
String tableName = table.getName();
获取表结构
// 结构化数据
TableSchema tableSchema = table.getSchema();
// json类型数据
String jsonSchema = table.getJsonSchema();
tableSchema.getColumns(); // 获取data列(不包含分区列)
tableSchema.getPartitionColumns(); // 获取分区列
获取表所在项目名
String projectName = table.getProject();
获取表所在Schema名
需要开启Schema功能,才能正确获取该字段。
String schemaName = table.getSchemaName();
获取表注释
String comment = table.getComment();