以下代码从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文档应该是从这个源代码自动生成的。四处搜寻,但对我来说还是个谜。谢谢你的帮助。
暂无答案!
目前还没有任何答案,快来回答吧!