作用
两个数组列做差集 基本上支持所有类型
函数定义和使用
add jar /Users/thomas990p/IdeaProjects/hiveThomasUDF/target/hiveThomasUDF-1.0-SNAPSHOT-jar-with-dependencies.jar;
create temporary function array_except as 'org.thomas.hive.udf.ArrayExcept';
-- select array_except(`array`(11,22,33,22,100),`array`(22),`array`(100));
-- [11,33]
-- select array_except(`array`( `map`("key1",100,"key2",200) , `map`("key1",999)),`array`( `map`("key1",100,"key2",200) ));
-- [{"key1":999}]
array_except源码
package org.thomas.hive.udf;
import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDF;
import org.apache.hadoop.hive.serde2.objectinspector.ListObjectInspector;