私はスカラーでCSVを読むためにさまざまなライブラリがあることを知っています。私は形のない方法を試みましたが、階層のための一般的な方法でcsvを読むのに問題があります。例えば、 - 各行はint型と文字列またはint型とオプションの文字列のいずれかであるすべてのスカラーのクラス階層のCSVを読む一般的な方法
abstract class A
case class ChildOneOfA(i:Int,s:String) extends A
case class ChildTwoOfA(i:Int,os:Option[String]) extends A`
// Requires generic implementation of T which is subtype of A
def genericCSVReader[T]:GenericCsvRecordReader[T] = {
//Generic implementation to return csv record iterator/reader
}
あなたはこのADTをどのようにCSVとして表すことができますか? –
意図はcsvがケースクラスの型パラメータに従うということです。 '' ChildOneOfA(i:Int、s:Option [String]) 'のように' '1、HI \ n 2、HELLO" 'または' ChildOneOfA(i:Int、s:String) '1、\ n 2、" HEY "' –
個々の大文字と小文字のクラスが異なる数と型の要素を持つ場合(たとえば 'Boolean'対' Double')はどうでしょうか?あるいは、同じ数とタイプの要素を持つ異なるケースクラスがあったのでしょうか? –