我有一个相当简单的特征和一些扩展它的案例对象。没有什么花哨。我目前正在使用Data Source V2 API编写新的数据源,并且想为该构造创建自定义DataType
。
目前我有这个:
class ChannelGroupType extends DataType {
val defaultSize: Int = 1
}
现在,我被卡住了。我还必须做些什么才能将其转换为某种内部表示形式并返回?我实际上如何将其链接到我的ChannelGroup
特征和案例对象?
是否有关于如何实现自定义类型的教程?
答案 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。