如何定义dataset.as()的隐式编码器参数

au9on6nz  于 2021-07-09  发布在  Spark
关注(0)|答案(0)|浏览(269)

以下代码从json文件创建数据集(devicedata是一个case类):

val spark = SparkSession.builder().master("local[*]").appName("Test").getOrCreate()
import spark.implicits._
val devicesDS = spark.read
      .json("devices.json")
      .as[DeviceData]

它是有效的,但是我不明白dataset的as()方法是如何做到这一点的。spark为dataset的as()方法编写的scala api文档如下,它定义了隐式参数arg0:encoder[u]:

def as[U](implicit arg0: Encoder[U]): Dataset[U]
    Returns a new Dataset where each record has been mapped on to the specified type...

但如果我查一下它的源代码,

def as[U : Encoder]: Dataset[U] = Dataset[U](sparkSession, logicalPlan)

它没有此参数。api文档应该是从这个源代码自动生成的。四处搜寻,但对我来说还是个谜。谢谢你的帮助。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题