2017-02-24 94 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):數組[患者] = ... –