Как идентифицировать сеансы в файле журнала Apache, используя RDD? - PullRequest
0 голосов
/ 25 сентября 2018

Я новичок в мире программирования и искры RDD.Я должен проанализировать несколько файлов журнала Apache.Формат файлов:

10.10.6.90 - - 15/Aug/2016:23:59:20 -0500 "GET /ecf8427e/b443dc7f/71f28176/174ef735/1dd4d421 HTTP/1.0" 200 - "-" "-" 7 "10.10.1.231, 10.10.6.90" -
10.10.2.104 - - 15/Aug/2016:23:59:21 -0500 "GET /ecf8427e/b443dc7f/b3a60c78/43eb7b22?093915ed HTTP/1.0" 200 - "-" "-" 3 "10.10.1.231, 10.10.2.104" -
10.10.6.90 - - 15/Aug/2016:23:59:30 -0500 "GET /ecf8427e/b443dc7f/71f28176/174ef735/1dd4d421 HTTP/1.0" 200 - "-" "-" 6 "10.10.1.231, 10.10.6.90" -
10.10.6.90 - - 16/Aug/2016:00:00:25 -0500 "GET /ecf8427e/b443dc7f/71f28176/174ef735/1dd4d421 HTTP/1.0" 200 - "-" "-" 5 "10.10.1.231, 10.10.6.90" -
10.10.6.90 - - 16/Aug/2016:00:00:27 -0500 "GET /ecf8427e/b443dc7f/71f28176/174ef735/1dd4d421 HTTP/1.0" 200 - "-" "-" 5 "10.10.1.231, 10.10.6.90" -

Теперь я хочу найти количество сеансов в этом журнале.Определение сеанса: каждый сеанс занимает всего 1 минуту.Следовательно, приведенный выше пример имеет 2 сеанса.Сессия 1 - с записями 15 августа 2016: 23: 59: 20, 15 августа 2016: 23: 59: 21, 15 августа 2016: 23: 59: 30, так как все 3 находятся в диапазоне 15 / август /2016: 23: 59: 20-16 / август / 2016: 00: 00: 20.Сессия 2 имеет 2 записи - 16 августа 2016: 00: 00: 25 и 16 августа 2016: 00: 00: 27.Я также хочу знать продолжительность каждой сессии.Для сеанса 1 = 1 + 9 = 10 секунд.Для сеанса 2 = 2 секунды.

Теперь, как мне решить эту проблему?Я уже уменьшил эту проблему, применив различные функции отображения и приведя функцию к приведенному ниже состоянию: -

(71f28176,(9,CompactBuffer(1471305560, 1471305566, 1471305570, 1471305576, 1471305580, 1471305585, 1471305590, 1471305595, 1471305625)))

В приведенном выше кортеже compactBuffer - это время в секундах, из которого мне нужно найти сеансы.71f28176 - идентификатор пользователя.9 это нет.раз записи 71f28176 появляются в журнале.

...