Столбец массива фильтра в Pandas фрейме данных --Pyspark - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть 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']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...