Создать 5-минутный интервал между двумя отметками времени

Вот пример использования apache commons-fileupload:

// apache commons-fileupload to handle file upload
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(new File(DataSources.TORRENTS_DIR()));
ServletFileUpload fileUpload = new ServletFileUpload(factory);

List<FileItem> items = fileUpload.parseRequest(req.raw());
FileItem item = items.stream()
  .filter(e ->
  "the_upload_name".equals(e.getFieldName()))
  .findFirst().get();
String fileName = item.getName();

item.write(new File(dir, fileName));
log.info(fileName);
0
задан Espanta 24 March 2019 в 05:55
поделиться

1 ответ

Я не знаю pyspark, но если вы используете панд, это работает. (и pyspark может быть похожим):

1: создавать данные

import pandas as pd
import numpy as np
data = pd.DataFrame({
    'id':[1, 2],
    'start_tm': pd.date_range('2019-01-01 00:00', periods=2, freq='D'),
    'end_dt': pd.date_range('2019-01-01 00:30', periods=2, freq='D')})
# pandas dataframe is similar to the data in pyspark

выводить

id  start_tm    end_dt
1   2019-01-01  2019-01-01 00:30:00
2   2019-01-02  2019-01-02 00:30:00

2: разбивать столбцы

period = np.timedelta64(5, 'm') # 5 minutes
idx = (data['end_dt'] - data['start_tm']) > period
while idx.any():
    new_data = data[idx].copy()
    new_data['start_tm'] = new_data['start_tm'] + period
    data.loc[idx, 'end_dt'] = (data[idx]['start_tm'] + period).values
    data = pd.concat([data, new_data], axis=0)
    idx = (data['end_dt'] - data['start_tm']) > period

выход

id  start_tm    end_dt
1   2019-01-01 00:00:00     2019-01-01 00:05:00
2   2019-01-02 00:00:00     2019-01-02 00:05:00
1   2019-01-01 00:05:00     2019-01-01 00:10:00
2   2019-01-02 00:05:00     2019-01-02 00:10:00
1   2019-01-01 00:10:00     2019-01-01 00:15:00
2   2019-01-02 00:10:00     2019-01-02 00:15:00
1   2019-01-01 00:15:00     2019-01-01 00:20:00
2   2019-01-02 00:15:00     2019-01-02 00:20:00
1   2019-01-01 00:20:00     2019-01-01 00:25:00
2   2019-01-02 00:20:00     2019-01-02 00:25:00
1   2019-01-01 00:25:00     2019-01-01 00:30:00
2   2019-01-02 00:25:00     2019-01-02 00:30:00
0
ответ дан Woods Chen 24 March 2019 в 05:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: