我有三个HList v = {'A': '1','B':'2'}
rdd = sc.parallelize(v.values())
df = spark.createDataFrame(rdd, list(v.keys()))
df.show()
,A
和B
。在案例类定义中,我想强制这三个HList之间的关系。
代码如下:
R
是否可以强制说trait Base[A <: HList]
case class Concat[A <: HList, B <: HList, R <: HList](a: A, b: B) extends Base[R]
是HLists R
和A
的串联?还是有一种方法我不需要类型B
但仍然强制R
的类型参数是Base
和A
的串联?
答案 0 :(得分:1)
您要Prepend
:
case class Concat[A <: HList, B <: HList, R <: HList](a: A, b: B)(implicit p: Prepend.Aux[A, B, R]) extends Base[R]
一个有用的伴随方法,无需指定R
def concat[A <: HList, B <: HList](a: A, b: B)(implicit p: Prepend[A, B]): Concat[A, B, p.Out] = Concat(a, b)(p)