Следующий фрагмент кода занимает много времени на 4 ГБ необработанных данных в кластере:
df.select("type", "user_pk", "item_pk","timestamp")
.withColumn("date",to_date(from_unixtime($"timestamp")))
.filter($"date" > "2018-04-14")
.select("type", "user_pk", "item_pk")
.map {
row => {
val typef = row.get(0).toString
val user = row.get(1).toString
val item = row.get(2).toString
(typef, user, item)
}
}
Выход должен быть типа Dataset[(String,String,String)]
.
Полагаю, что map
часть занимает много времени. Есть ли способ оптимизировать этот кусок кода?