package com.facebook.hive.udf; import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.exec.UDF; import java.util.ArrayList; import java.util.HashSet; @Description(name = "udfarrayintersect", value = "_FUNC_(values) - Computes the intersection of the array arguments. Note that ordering will be lost.") public class UDFArrayIntersect extends UDF { public ArrayList<String> evaluate(ArrayList<String>... arrays) { HashSet<String> result_set = null; for (int ii = 0; ii < arrays.length; ++ii) { if (arrays[ii] == null) { continue; } if (result_set == null) { result_set = new HashSet<String>(arrays[ii]); } else { result_set.retainAll(arrays[ii]); } } return new ArrayList<String>(result_set); } }