2016-12-06 47 views
1

是否可以从Spark 2.0中的Dataframe列创建数据集? 我有以下问题:我想从日期分割的实木复合地板数据读取一些数据,然后将其中一列转换为数据集。 〔实施例:如何从Spark 2.0中的DataFrame列创建数据集?

val frame = spark.read.parquet(path).select($"date", $"object".as[MyObjectType]).filter($"date" > "2016-10-01") 

现在,我需要改造第二列Dataset[MyObjectType]和不明白我怎么能做到这一点。 MyObjectType是斯卡拉产品类型

回答

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") 

我认为这是做

最简单的方法
相关问题