Spark SQL 2.3+是否支持UDT?

时间:2018-11-26 17:09:50

标签: apache-spark apache-spark-sql

我正在经历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。如果是,最好使用UserDefinedTypeUDTRegisteration。截止到目前,两者都是火花。

1 个答案:

答案 0 :(得分:1)

您可以检查,您链接的JIRA票证至少已延迟到Spark 3.0。因此,这意味着目前尚无此类选项可供公众使用。

总是有可能绕过访问限制(通过反射,将您自己的代码放在Spark名称空间中),但是绝对不支持它,并且如果将来失败或中断,您也不应期望获得帮助。