2016-12-06 4 views
1

Возможно ли создать набор данных из столбца Dataframe в Spark 2.0? У меня есть следующая проблема: я хочу прочитать некоторые данные из данных паркета, разделенных по дате, и после этого преобразовать один из столбцов в набор данных. Exmaple:Как создать Dataset из столбца DataFrame в Spark 2.0?

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

Теперь мне нужно преобразовать второй столбец Dataset[MyObjectType] и не понимаю, как я могу это сделать. MyObjectType является тип продукта Scala

ответ

2

Вы можете сделать cast:

val frame = spark.read.parquet(path) 
    .select($"date", $"object".cast(MyObjectTypeUDT)) 
    .filter($"date" > "2016-10-01") 

В этом случае MyObjectTypeUDT является одним из типов SQL, т.е. StringType или IntegerType или пользовательских UserDefinedType.

Или, если у вас есть класс, который представляет содержание в Dataset:

case clas DateWithObject (date : Timestamp, object: MyObject) 

Тогда вы можете написать:

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

Я думаю, что это самый простой способ сделать это

Смежные вопросы