Я новичок в Scala, и мне нужен ваш совет!
У меня есть следующий DataFrame:
someDF.show()
+----+-----+--------+
|Col1| Col2| Col3|
+----+-----+--------+
| 1| Cat|01012020|
| 2| Dog|15032018|
| 3|Mouse|22022019|
+----+-----+--------+
someDF.schema
Col1:string
Col2:string
Col3:string
Теперь я хотел бы преобразовать фрейм данных - изменить имена столбцов и типы данных примерно такие:
AnimalID:Integer
Animal:String
PurchaseDate:Date
Я планирую сохранить целевой DataFrame в виде файла Parquet. Я пытался сделать следующее. Сначала я создал класс:
case class animalSchema(AnimalID: Integer, Animal: String, PurchaseDate: DateTime)
Затем я использовал карту для изменения схемы:
val animals = someDF
.map(p => animalSchema(p(0).toInteger, p(1).toString, p(2)))
К сожалению, возникли две проблемы:
a) Как я Не удалось найти тип Date или DateTime, доступный в Scala. Как правильно хранить Date в DataFrame? Позже я хотел бы иметь возможность сравнить ее с текущей датой.
b) Похоже, я не могу привести строку, хранящуюся в Col1, к Integer в AnimalID. Как это сделать?
Большое спасибо!