我目前正在使用 4.4 版的大象鸟猪库。如果我尝试从一个 thrift 对象创建一个元组,我希望未在对象中设置的字段在元组中被标记为 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,abc,null,null)
PropValueUnion value = new PropValueUnion();
a.setStringValue("abc");
System.out.println(ThriftToPig.newInstance(PropvalueUnion.class).getPigTuple(value));
实际:(0,0,abc,0.0,0)
问题是字段的 isset 信息在转换为元组期间丢失。是故意做的吗?这个问题有什么解决方法吗?