【发布时间】:2019-05-21 16:29:37
【问题描述】:
我的配置单元表结构如下 -
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 );
现在我想将 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);
当我使用上面的代码时,它会给出 Map 类型的类型错误。 任何人都可以建议如何构建接受地图类型列并返回地图类型列的 JAVA spark udf。 谢谢。
【问题讨论】:
-
解决了吗?如果解决了它是如何解决的?我在接受地图抛出错误 java.lang.RuntimeException: Unsupported literal type class java.util.HashMap 的 UDF 内部遇到问题
标签: java apache-spark hadoop hive user-defined-functions