我目前正在使用4.4版的象鸟Pig库。如果我试图从一个节俭对象生成一个元组,我希望在这个对象中没有设置的字段在元组中被标记为null。但是,默认值被放入元组中。例如。
struct PropValueUnion {
1: optional i32 intValue,
2: optional i64 longValue,
3: optional string stringValue,
4: optional double doubleValue,
5: optional bool flag
}
下面的输出应该是(null,null,,null,null)
PropValueUnion value = new PropValueUnion();
a.setStringValue("abc");
System.out.println(ThriftToPig.newInstance(PropvalueUnion.class).getPigTuple(value));
实际值:(0,0,,0.0,0)
问题是字段的isset信息在转换为元组的过程中丢失。这是故意的吗?这个问题有解决办法吗?
1条答案
按热度按时间gxwragnw1#
我希望没有在对象中设置的字段在tuple中被标记为null。但是,默认值被放入元组中。e
这是正确的。是否设置了可选字段可以通过检查
isset
旗帜。