Commit 317b825e by 魏建枢

代码提交

parent 729d20a3
package com.cloud.udf;
import java.util.ArrayList;
import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDTF;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory;
import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
/**
* @author wjs
* @version 创建时间:2025-3-12 10:48:22
* 类说明 日志采集设备ID升级
*/
public class CollectLogDeviceIdUpgrade extends GenericUDTF{
private ArrayList<Object[]> result = new ArrayList<Object[]>();
@Override
public StructObjectInspector initialize(ObjectInspector[] argOIs) throws UDFArgumentException {
// 检测参数数量
if (argOIs.length != 21) {
throw new UDFArgumentException("需要二十一个输入参数:id,device_id,uid,strategy_group_id,strategy_version,send_time,create_time,app_key,app_type,app_channel,zone_code,zone_name,zone_type,sdk_version,user_agent,other_info,device_info,env_info,user_properties,unique_id,dt");
}
ArrayList<String> fieldNames = new ArrayList<String>();
ArrayList<ObjectInspector> fieldOIs = new ArrayList<ObjectInspector>();
fieldNames.add("id");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("device_id");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("uid");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("strategy_group_id");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("strategy_version");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("send_time");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("create_time");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("app_key");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("app_type");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("app_channel");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("zone_code");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("zone_name");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("zone_type");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("sdk_version");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("user_agent");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("other_info");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("device_info");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("env_info");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("user_properties");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("unique_id");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("dt");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
return ObjectInspectorFactory.getStandardStructObjectInspector(fieldNames, fieldOIs);
}
@Override
public void process(Object[] args) throws HiveException {
System.out.println("CollectLogDeviceIdUpgrade process start! args:"+args !=null ? args.length:0);
if (args.length != 21) {
throw new UDFArgumentException("需要二十一个输入参数:id,device_id,uid,strategy_group_id,strategy_version,send_time,create_time,app_key,app_type,app_channel,zone_code,zone_name,zone_type,sdk_version,user_agent,other_info,device_info,env_info,user_properties,unique_id,dt");
}
String id = args[0].toString();
String device_id = args[1].toString();
String uid = args[2].toString();
String strategy_group_id = args[3].toString();
String strategy_version = args[4].toString();
String send_time = args[5].toString();
String create_time = args[6].toString();
String app_key = args[7].toString();
String app_type = args[8].toString();
String app_channel = args[9].toString();
String zone_code = args[10].toString();
String zone_name = args[11].toString();
String zone_type = args[12].toString();
String sdk_version = args[13].toString();
String user_agent = args[14].toString();
String other_info = args[15].toString();
String device_info = args[16].toString();
String env_info = args[17].toString();
String user_properties = args[18].toString();
String unique_id = args[19].toString();
String dt = args[20].toString();
result.add(new Object[]{id,device_id,uid,strategy_group_id,strategy_version,send_time,create_time,app_key,app_type,app_channel,zone_code,zone_name,zone_type,sdk_version,user_agent,other_info,device_info,env_info,user_properties,unique_id,dt});
System.out.println("CollectLogDeviceIdUpgrade process end!");
}
@Override
public void close() throws HiveException {
for (Object[] r : result) {
forward(r);
}
result.clear();
}
}
......@@ -56,7 +56,7 @@ public class IpToConvert extends GenericUDTF{
@Override
public void process(Object[] args) throws HiveException {
System.out.println("IpToConvert process start! args:"+args !=null ? args.length:0);
if (args[0] == null) {
if (args.length != 6) {
throw new HiveException("需要六个输入参数:id,ip,cid,phone,nick,dt");
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment