是否可以在Spark 2.0中从Dataframe列创建数据集? 我有一个以下问题:我想从按日期划分的镶木地板数据中读取一些数据,然后将其中一列转换为数据集。 〔实施例:
val frame = spark.read.parquet(path).select($"date", $"object".as[MyObjectType]).filter($"date" > "2016-10-01")
现在,我需要将第二列转换为Dataset[MyObjectType]
并且不明白我是如何做到这一点的。 MyObjectType是scala产品类型
答案 0 :(得分:2)
你可以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")
我认为这是最简单的方法