обрабатывать список дат в столбце данных с использованием pyspark - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть СДР, выглядит так: код:

tripsdataRDD = sc.textFile('/home/Workstation/trips_mock_data.txt')
strippeddata = tripsdataRDD.map(lambda s:s.replace("'","").strip("()").split(","))
dataPairs = strippeddata.map(lambda fields:(fields[0], fields[3]))
groupedPairs = dataPairs.groupByKey().sortByKey()
sortedDatePairs = groupedPairs.map(lambda x : (x[0], sorted(list(x[1]))))

вывод:

[('1', [' 10/11/2016', '10/16/2016', '11/11/2016']), ('2', ['  02/18/2017', '  02/19/2017']), ('3', ['    01/18/2017']), ('4', ['    01/21/2017', '    01/27/2017']), ('5', ['    02/04/2016', '    03/04/2016', '    03/06/2016'])]

Затем я преобразовал это в фрейм данных, используя pyspark:

df = sortedDatePairs.toDF()
df.show()

выходные данные:

+---+--------------------+
| _1|                  _2|
+---+--------------------+
|  1|[ 10/11/2016, 10/...|
|  2|[  02/18/2017,   ...|
|  3|    [    01/18/2017]|
|  4|[    01/21/2017, ...|
|  5|[    02/04/2016, ...|
+---+--------------------+

Теперь я хочу найти последовательность транзакций с интервалом не более 7 дней между каждой транзакцией. Желаемый результат должен быть идентификатором и числом поездок. Я хочу использовать pyspark для решения этой проблемы.

...