火花通用案例类到structtype

时间:2018-06-25 04:56:56

标签: scala apache-spark generics

我想实现类似于http://benfradet.github.io/blog/2017/06/14/Deriving-Spark-Dataframe-schemas-with-Shapeless的功能,但没有无形的

 def generateStructTypeFromCaseClass[T <: Product](): StructType =
    ScalaReflection.schemaFor[T].dataType.asInstanceOf[StructType]

无法编译:

No TypeTag available for T

我该如何解决?

1 个答案:

答案 0 :(得分:3)

您可以按以下方式向您的方法添加隐式TypeTag[T]参数:

 def generateStructTypeFromCaseClass[T <: Product]()(implicit tag: TypeTag[T]): StructType =
   ScalaReflection.schemaFor[T].dataType.asInstanceOf[StructType]

此参数将由编译器自动填充。有关详细信息,请参见here