Java p>
由于hadoop环境(Pig、hdfs、Hive等)正在使用json-path-2.3.0,其更好的用户映射器逻辑应该使用另一个版本“jsonpath-1.0.jar”来解决问题由于hadoop环境(Pig、hdfs、Hive等)正在使用json-path-2.3.0,其更好的用户映射器逻辑应该使用另一个版本“jsonpath-1.0.jar”将解决问题提供加载/解析JSON的自定义实现,这样我们就可以避免使用Hadoop/lib的JSON-smart-2.x/1.xJava p>,java,json,apache-pig,hadoop2,jsonpath,Java,Json,Apache Pig,Hadoop2,Jsonpath,由于hadoop环境(Pig、hdfs、Hive等)正在使用json-path-2.3.0,其更好的用户映射器逻辑应该使用另一个版本“jsonpath-1.0.jar”来解决问题由于hadoop环境(Pig、hdfs、Hive等)正在使用json-path-2.3.0,其更好的用户映射器逻辑应该使用另一个版本“jsonpath-1.0.jar”将解决问题提供加载/解析JSON的自定义实现,这样我们就可以避免使用Hadoop/lib的JSON-smart-2.x/1.x public stat
public static void changeJsonPathConfig() {
if (!configChanged) {
Configuration.setDefaults(new Configuration.Defaults() {
private final JsonProvider jsonProvider = new GsonJsonProvider(
new GsonBuilder().serializeNulls().create());
private final MappingProvider mappingProvider = new GsonMappingProvider();
@Override
public JsonProvider jsonProvider() {
return jsonProvider;
}
@Override
public MappingProvider mappingProvider() {
return mappingProvider;
}
@Override
public Set<Option> options() {
return EnumSet.noneOf(Option.class);
}
});
configChanged = true;
}
}
publicstaticvoidchangejsonpathconfig(){
如果(!configChanged){
setDefaults(新的Configuration.Defaults(){
私有最终JsonProvider JsonProvider=新GsonJsonProvider(
新建GsonBuilder().serializeNulls().create());
private final MappingProvider MappingProvider=new GsonMappingProvider();
@凌驾
公共JsonProvider JsonProvider(){
返回jsonProvider;
}
@凌驾
公共映射提供程序映射提供程序(){
返回mappingProvider;
}
@凌驾
公共集选项(){
返回EnumSet.noneOf(Option.class);
}
});
configChanged=true;
}
}
提供加载/解析JSON的自定义实现,这样我们就可以避免使用Hadoop/lib的JSON-smart-2.x/1.x
public static void changeJsonPathConfig() {
if (!configChanged) {
Configuration.setDefaults(new Configuration.Defaults() {
private final JsonProvider jsonProvider = new GsonJsonProvider(
new GsonBuilder().serializeNulls().create());
private final MappingProvider mappingProvider = new GsonMappingProvider();
@Override
public JsonProvider jsonProvider() {
return jsonProvider;
}
@Override
public MappingProvider mappingProvider() {
return mappingProvider;
}
@Override
public Set<Option> options() {
return EnumSet.noneOf(Option.class);
}
});
configChanged = true;
}
}
publicstaticvoidchangejsonpathconfig(){
如果(!configChanged){
setDefaults(新的Configuration.Defaults(){
私有最终JsonProvider JsonProvider=新GsonJsonProvider(
新建GsonBuilder().serializeNulls().create());
private final MappingProvider MappingProvider=new GsonMappingProvider();
@凌驾
公共JsonProvider JsonProvider(){
返回jsonProvider;
}
@凌驾
公共映射提供程序映射提供程序(){
返回mappingProvider;
}
@凌驾
公共集选项(){
返回EnumSet.noneOf(Option.class);
}
});
configChanged=true;
}
}
解决方案有什么进展吗?我也面临同样的问题!!!我们正在使用另一个包com.nebhale.jsonpath jsonpath@syedmazrenea:您提到的包中是否有jsonpath的所有属性?@syedmazrenea-我目前使用的是Hadoop 2.6是否有可能在Hadoop的更高版本中修复此问题?@sandepshetty-请告诉我是否您可以解决此问题。解决方案是否成功?我也面临同样的问题!!!我们正在使用另一个包com.nebhale.jsonpath jsonpath@syedmazrenea:您提到的包中是否有jsonpath的所有属性?@syedmazrenea-我目前使用的是Hadoop 2.6是否有可能在Hadoop的更高版本中修复此问题?@sandepshetty-请告诉我是否您可以解决此问题。以上似乎是此问题的完美解决方案上述似乎是此问题的完美解决方案
public static void changeJsonPathConfig() {
if (!configChanged) {
Configuration.setDefaults(new Configuration.Defaults() {
private final JsonProvider jsonProvider = new GsonJsonProvider(
new GsonBuilder().serializeNulls().create());
private final MappingProvider mappingProvider = new GsonMappingProvider();
@Override
public JsonProvider jsonProvider() {
return jsonProvider;
}
@Override
public MappingProvider mappingProvider() {
return mappingProvider;
}
@Override
public Set<Option> options() {
return EnumSet.noneOf(Option.class);
}
});
configChanged = true;
}
}