如何在 Spark 2.0 中使用用户定义类型?

And*_*son 6 scala user-defined-types apache-spark

在 Spark 2.0 中,我发现的一个在 Scala 中创建 UDT 的示例似乎不再适用。该UserDefinedType类已经被设置为private,与评论:

注意:这以前是 Spark 1.x 中的开发人员 API。我们在 Spark 2.0 中将其设为私有,因为我们很可能会创建一个新版本,以更好地与数据集配合使用。

UDTRegistration的目的可能是成为声明 UDT 的新机制,但它也是private.

到目前为止,我的研究告诉我,没有办法在 Spark 2.0 中声明您自己的 UDT;这个结论正确吗?

Thi*_*dim 2

好吧,现在你是对的,Spark 2.x 不再像 Spark 1.x 那样使用任何类型的 UDT 作为 API。

您可以在此票证SPARK-14155中看到,他们将其设为私有以创建新的 API。自 Spark 1.5 以来,我们有一个开放的票证,我们希望在 Spark 2.2 SPARK-7768中关闭该票证。

好吧,类型现在不适合创建 UDT,但是...可以将自定义对象设置为 DataSet 的技巧很少。是一个例子。