package mobvista.prd.datasource.udf; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import mobvista.prd.datasource.util.GsonUtil; import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.io.Text; /** * Created by fl on 2017/5/17. */ public class GetInterestInfo extends UDF { private StringBuilder builder = new StringBuilder(); private static final String dataSplit = "\t"; public String evaluate(Text str) { JsonArray array = GsonUtil.String2JsonArray(str.toString()); for (JsonElement element : array) { JsonObject obj = element.getAsJsonObject(); JsonArray tagArray = obj.get("tag").getAsJsonArray(); for (JsonElement tagElement : tagArray) { JsonObject tagObj = tagElement.getAsJsonObject(); String firstLevel = tagObj.get("1") != null ? tagObj.get("1").getAsString() : ""; String sencondLevel = tagObj.get("2") != null ? tagObj.get("2").getAsString() : ""; builder.setLength(0); builder.append(firstLevel).append(dataSplit).append(sencondLevel); } } return builder.toString(); } }