2017-02-24 90 views
0

我试图创建一个用作基本特征为一些解析器的斯卡拉性状的集合函数的一般特征。我有许多案例类将存储解析的数据集。所有这些案例类都扩展了可解析特性。定义与返回类型

一些类将返回

Array[C <: Parseable] 

别人

Dataset[C <: Parseable] 

如何定义解析器特点,使得解析()函数返回上述数据结构的?

+0

您能详细阐述一下吗*所有这些案例类都扩展了Parseable特质。你能举出一个解析器的具体例子吗?扩展可解析特征的案例类对我来说感觉有点不自然。 –

+0

我会尽力!我有许多不同的带有管道分隔数据的文本文件。每个文件都需要进行不同的分析,所以我想打造一个集解析器将各延长分析器特质。一个文件的解析的最终结果将是包含解析数据的情况下类。每个案例类都扩展了可解析特性。由于各种原因,由分析器生成的情况下类的列表可以是一个数组或数据集星火,因此需要通用返回类型。我想,以确保返回列表只能是可解析的亚型。 –

回答

0
trait Parser[A[_], B <: Parseable]{ 

     def parse(s:String): A[B] 

} 
+0

谢谢!我挣扎着弄清楚如何,然后将此我的解析器代码,终于想通了以下内容:对象DemographicParser延伸分析器[阵列,病人] { 高清解析(文件名:字符串)(隐含sparkSession:SparkSession):数组[患者] = ... –