是否可以从Spark 2.0中的DataFrame列创建数据集?我有一个以下问题:我想从日期按镶木quet数据分区的数据中读取一些数据,然后将其中一列转换为数据集。Exmaple:
val frame = spark.read.parquet(path).select($"date", $"object".as[MyObjectType]).filter($"date" > "2016-10-01")
现在,我需要将第二列转换为Dataset[MyObjectType]
,并且不了解我如何做到这一点。MyObjectType是Scala产品类型
您可以做cast
:
val frame = spark.read.parquet(path)
.select($"date", $"object".cast(MyObjectTypeUDT))
.filter($"date" > "2016-10-01")
在这种情况下,MyObjectTypeudt是SQL类型之一,即StringType或IntegerType或自定义UserDefinedType。
或,如果您有一些代表数据集中内容的类:
case clas DateWithObject (date : Timestamp, object: MyObject)
然后您可以写:
val frame = spark.read.parquet(path)
.select($"date", $"object")
.as[DateWithObject]
.filter($"date" > "2016-10-01")
我认为这是最简单的方法