Я нашел одно решение с картой и уменьшением.
Пусть диапазоны дат будут val dateRanges: List[(String, String)] = List((startDate1, endDate1), (startDate2, endDate2), (startDate3, endDate3))
val results = df.filter(
dateRanges.map(range => col("Date").between(range._1, range._2))
.reduce((df1, df2) => df1 || df2))
Здесь сначала сопоставляется каждый диапазон датк разделу кадра данных, использующему map
, различные разделы данных объединяются вместе с помощью reduce
.
Но кто-нибудь знает эффективность этого метода?Конечно, объединение двух частей набора данных не будет оптимальным способом.