Apache pig 在Pig中加载嵌套拼花地板文件?
拼花地板文件是从Avro文件创建的。现在我需要在Pig中加载拼花地板文件。下面是我从Apache pig 在Pig中加载嵌套拼花地板文件?,apache-pig,parquet,Apache Pig,Parquet,拼花地板文件是从Avro文件创建的。现在我需要在Pig中加载拼花地板文件。下面是我从parquet tools schema命令获得的模式 message Logs { optional group SUPER1 { optional group FIELD1 (LIST) { repeated int32 array; } optional group FIELD2 (LIST) { repeated int32 array; }
parquet tools schema
命令获得的模式
message Logs {
optional group SUPER1 {
optional group FIELD1 (LIST) {
repeated int32 array;
}
optional group FIELD2 (LIST) {
repeated int32 array;
}
}
optional group SUPER2 {
optional int32 FIELD1;
optional binary FIELD2 (UTF8);
optional double FIELD3;
optional int32 FIELD4;
optional double FIELD5;
optional binary FIELD6 (UTF8);
}
optional group SUPER3 {
required int32 FIELD1;
required int32 FIELD2;
optional binary FIELD3 (UTF8);
optional binary FIELD4 (UTF8);
}
required binary SUPER4 (UTF8);
optional binary SUPER5 (UTF8);
}
现在我无法理解加载此文件的等效pig模式。我正在使用parquet.pig.ParquetLoader
。我做了以下转换:-
chararray
输入不匹配。'
Failed to parse: Invalid list type optional group FIELD1 (LIST) {
repeated int32 array;
}
正确的访问方法是使用
操作符,如问题的第2点所示。因为我使用的是parquet.pig.ParquetLoader()
,所以我无法使用它。Parquet for pig现在已被Apache采用,并获得了最大的支持,因此我使用了来自org.Apache.Parquet.pig.ParquetLoader()的JAR作为解析器。以下代码有效:-
log_parquet = LOAD 'logs' USING org.apache.parquet.pig.ParquetLoader();
req_拼花地板将是一个包含5个字段的元组(Super1-5)。字段Super1,2,3本身就是元组Super1.Field1
和Super1.Field2
本身就是一个元组包,数组中的每个元素都是元组
这很复杂,但对我来说很有效