2016-12-06 44 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") 

我認爲這是做

最簡單的方法
相關問題