[英]Java Spark UDF with input parameter as Map type
I have hive table structure as below - 我的蜂巢表结构如下-
create table sessionize_data (
ip string
cookie string
userid string
dattime string
timestamp bigint
referrer string
request string
useragent string
absoluteips string
xff string
calltype string
url string
unique_visitor string
referrer_url string
referrer_dqp map<string,string>
dqp map<string,string>
params map<string,string>
events_subcategory map<string,string>
session_id string
source string
dwelltime string
traffic string
viewdate string );
Now I want to pass params map column in spark UDF as a parameter - I did it using following code- 现在,我想将spark UDF中的params map列作为参数传递-我使用以下代码进行了操作-
spark.udf().register("populateUrl",
new UDF3 < HashMap < String, String > , String, String, HashMap < String, String >> () {
private static final long serialVersionUID = 1 L;
@Override
public HashMap < String, String > call(HashMap < String, String > params, String url_type, String source)
throws Exception {
// some operation here
return params;
}
}, DataTypes.StringType);
When I use above code it is giving type error for Map type. 当我使用上面的代码时,它给出了Map类型的类型错误。 Can anybody suggest how to build JAVA spark udf which accepts Map type column and returns Map type column.
有人可以建议如何构建接受Map type列并返回Map type列的JAVA spark udf 。 Thanks.
谢谢。
根据_Spark SQL编程指南 , MapType
的外部类型为java.util.Map
因此您应该实现:
UDF3<java.util.Map<String, String>, String, String, java.util.Map<String, String>>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.