У меня есть pandas фрейм данных, подобный этому, где столбец run_dates - это массив строковых дат
JobId run_dates
1 ['2020-04-03','2020-04-02','2020-04-01']
2 ['2020-04-05','2020-04-07']
3 ['2020-03-25','2020-04-01']
4 ['2020-04-06','2020-02-09','2020-02-11']
Я пытаюсь найти все идентификаторы заданий, которые работали между 2020-04-05 to 2020-04-11
, хотя бы одна дата в массив, который попадает под это окно
Итак, вот что я пробовал, я создал массив строк для диапазона дат с 2020-04-05 по 2020-04-11
input_runs_array=['2020-04-05','2020-04-06','2020-04-07','2020-04-08','2020-04-09','2020-04-10','2020-04-11']
search_array = array_sort(array(*map(lambda e: lit(e), input_runs_array)))
spark_df = spark.createDataFrame(pandaDf) //convert above pandaDf to sparkDF
final_df=spark_df.where(array_sort(array_intersect(spark_df['run_dates'], search_array)) == spark_df['run_dates'])
display(final_df)
output:
OK
Expected output:
JobId run_dates
2 ['2020-04-05','2020-04-07']
4 ['2020-04-06','2020-02-09','2020-02-11']