我有一个自定义加载函数,只是扩展了Pig的PigStorage加载函数.我正在寻找类型转换的一些工作,但我需要访问架构,但我不知道如何/在哪里访问pig架构.我不确定您是否需要任何其他信息,但如果您这样做,请告诉我,我很乐意提供.
小智 5
您需要实现LoadMetadata接口并从getSchema方法提供架构详细信息.你必须在那里工作:
org.apache.pig.ResourceSchema;
org.apache.pig.data.DataType;
org.apache.pig.impl.logicalLayer.schema.Schema;
org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema;
Run Code Online (Sandbox Code Playgroud)
定义加载函数的模式.
public ResourceSchema getSchema() {
List<FieldSchema> fieldSchemaList = new ArrayList<FieldSchema>();
fieldSchemaList.add( new FieldSchema("column_name1", org.apache.pig.data.DataType.CHARARRAY) );
fieldSchemaList.add( new FieldSchema("column_name2", org.apache.pig.data.DataType.CHARARRAY) );
fieldSchemaList.add( new FieldSchema("column_name3", org.apache.pig.data.DataType.CHARARRAY) );
return new ResourceSchema( new Schema(fieldSchemaList) );
}
Run Code Online (Sandbox Code Playgroud)