我正在经历this ticket,不知道Spark是否支持任何语言(Scala,Python,Java,R)的2.3+版本的UDT?
我上了这样的课
Class Test{
string name;
int age;
}
我的UDF方法是:
public Test UDFMethod(string name, int age){
Test ob = new Test();
ob.name = name;
ob.age = age;
}
示例Spark查询
Select *, UDFMethod(name, age) From SomeTable;
现在UDFMethod(name, age)
将返回测试对象。那么在使用SQLUserDefinedType
标签并扩展UserDefinedType
类之后,这在Spark SQL中可以工作吗?
由于UserDefinedType
类在Spark 2.0中被设为私有。我只想知道Spark 2.3+是否支持UDT。如果是,最好使用UserDefinedType
或UDTRegisteration
。截止到目前,两者都是火花。
答案 0 :(得分:1)
您可以检查,您链接的JIRA票证至少已延迟到Spark 3.0。因此,这意味着目前尚无此类选项可供公众使用。
总是有可能绕过访问限制(通过反射,将您自己的代码放在Spark名称空间中),但是绝对不支持它,并且如果将来失败或中断,您也不应期望获得帮助。