如何在Spark中实现自定义DataType?

时间:2019-02-12 12:37:27

标签: scala apache-spark

我有一个相当简单的特征和一些扩展它的案例对象。没有什么花哨。我目前正在使用Data Source V2 API编写新的数据源,并且想为该构造创建自定义DataType

目前我有这个:

class ChannelGroupType extends DataType {

  val defaultSize: Int = 1
}

现在,我被卡住了。我还必须做些什么才能将其转换为某种内部表示形式并返回?我实际上如何将其链接到我的ChannelGroup特征和案例对象?

是否有关于如何实现自定义类型的教程?

1 个答案:

答案 0 :(得分:1)

从我的角度来看,您似乎不必实现自己的DataType。以下使用DataSourceV2创建数据源的流程将解决您的问题。有关交易的高级示例,您可以在this project中找到DataSourceV2的数据库,该仓库对应于this blog中的说明。在您的情况下,遵循这些教程的IMO是最直接的解决方案。

P.S。 如果您足够使用 Data Source V1 ,则可以在Databricks的spark-csv项目中找到特定的实现。 spark-csv是一个成熟的项目,因此您可以依赖此项目中的模式。

P.S.S。 如果您要创建自己的 User Defined Type ,目前不可行,则该API已关闭,将在Spark 3.0中发布给公众,您可以跟踪票证SPARK-7768