У меня есть приложение-скрипт данных, которое использует dask для go через базу данных и производит некоторые промежуточные продукты, которые затем объединяют эти промежуточные продукты для получения результата. Теперь я хотел бы эффективно выписать промежуточные продукты и результат, но, как вы можете видеть ниже, я нашел только очень неэффективный способ, при котором вы вычисляете промежуточные продукты больше, чем единицы.
import dask.bag as db
from other_functions import *
input = db.read_text(file1)
processing_parameter = parse_mapping_parameters(file2)
intermediates = []
for p in mapping_parameter:
intermediate = input.map(lambda x: process(x, p))
intermediates.append(intermediate)
products = intermediates.pop(0)
for intermediate in intermediates:
products = product.products(i)
result = products.map(calc_result)
for i, intermediate in enumerate(intermediates):
intermediate.to_textfiles(f'./data/intermediate_{i}.*.txt')
result.to_textfiles(f'./data/result.*.txt')
Альтернатива, которую я вижу, состоит в том, чтобы записать промежуточные файлы в файл, а затем использовать отдельный сценарий для повторного считывания их в память и генерирования результатов, но с точки зрения ввода-вывода, что также неэффективно. Есть ли лучший способ сделать это в сумерках?