У меня есть СДР, выглядит так: код:
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 для решения этой проблемы.