apache-spark - Spark SQL 2.3+ 是否支持 UDT?
问题描述
我正在查看这张票,不明白 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)
将返回 Test 对象。那么在使用SQLUserDefinedType
标签和扩展UserDefinedType
类之后,这会在 Spark SQL 中工作吗?
因为UserDefinedType
类在 Spark 2.0 中是私有的。我只想知道 Spark 2.3+ 是否支持 UDT。如果是,最好使用什么UserDefinedType
或UDTRegisteration
. 截至目前,两者都是私有的。
解决方案
如您所见,您链接的 JIRA 票已至少延迟到 Spark 3.0。因此,这意味着目前没有供公众使用的此类选项。
总是可以绕过访问限制(通过反射,通过将您自己的代码放在 Spark 命名空间中),但绝对不支持它,如果它在未来失败或中断,您不应该期待帮助。
推荐阅读
- nginx - Nginx 将参数添加到来自父参数的每个请求
- reactjs - 在刷新页面上,反应路由器状态显示旧状态
- vba - 将多个工作簿中的特定选项卡移动到单个工作簿中
- java - 实现 ArrayBlockingQueue 并在尾部和头部锁定的原因是什么?
- cordova - 在框架 7 v2 中单击按钮时页面重新加载
- performance - JMeter 非 GUI 测试执行
- xml - /../ 在 xpath 中是什么意思?
- java - Android arrayList 检索数据
- python-3.x - 屏幕闪烁与 matplotlib 滑块更新
- image - 如何使用 parcel-bundle 在 React 中导入图像