Я использую dask
для обработки 10 файлов, размер каждого из которых составляет около 142 МБ. Я создаю метод с отложенным тегом, следующий пример:
@dask.delayed
def process_one_file(input_file_path, save_path):
res = []
for line in open(input_file_path):
res.append(line)
df = pd.DataFrame(line)
df.to_parquet(save_path+os.path.basename(input_file_path))
if __name__ == '__main__':
client = ClusterClient()
input_dir = ""
save_dir = ""
print("start to process")
cvss = [process_one_file(input_dir+filename, save_dir) for filename in os.listdir(input_dir)]
dask.compute(csvs)
Однако dask
не всегда работает успешно. После обработки всех файлов программа часто зависает.
Я использовал командную строку для запуска программы. Программа часто выдает ошибку после печати start to process
. Я знаю, что программа работает правильно, так как через некоторое время я могу видеть все выходные файлы. Но программа никогда не останавливается. Если я отключил tls, программа сможет успешно работать. Это было так странно, что dask не может остановить программу, если я включу tls соединение. Как я могу решить эту проблему?
Я обнаружил, что если я добавлю метод to_parquet
, то программа не сможет остановиться, а если я удалю метод, она будет успешно работать.