Передача объектов между R и Python в памяти ⇐ Python
-
Anonymous
Передача объектов между R и Python в памяти
Я работаю над рабочим процессом, который содержит сценарии Python и R. В текущем состоянии исходные входные данные в виде файла csv считываются в Python, выходные данные затем записываются в CSV, который принимается в R, а выходные данные сценария R снова записываются в CSV и записываются в Python. .
Обрабатываемые кадры данных очень велики (>60 ГБ), поэтому понятно, что процесс занимает много времени, и я хотел бы его ускорить. Ниже я перечислил, что я пытался сделать, и результаты:
[*]Использовать формат паркета. Это решение нежизнеспособно, поскольку требует Spark на стороне R. [*]Использовать формат растушевки. Это решение оказалось нежизнеспособным, поскольку в текущем состоянии файлы растушевки имеют проблемы с очень большими файлами (>300 000 000 записей).
В настоящее время я исследую идею хранения фрейма данных в рабочей памяти и каким-то образом передавать объект между R и Python без выполнения процесса ввода-вывода записи и чтения файла. Я искал в Интернете, но не нашел подходящего решения. Я проверяю, есть ли у кого-нибудь здесь опыт работы с подобными проектами или какие-либо другие предложения. На данный момент самое близкое, что я нашел, — это объединение сценариев Python и R в один сценарий в стиле блокнота/уценки с возможностью интерпретировать код как R, так и Python, однако я ищу решение, которое сохранит модульность сценариев. . Мы ценим любые предложения. Спасибо!
Я работаю над рабочим процессом, который содержит сценарии Python и R. В текущем состоянии исходные входные данные в виде файла csv считываются в Python, выходные данные затем записываются в CSV, который принимается в R, а выходные данные сценария R снова записываются в CSV и записываются в Python. .
Обрабатываемые кадры данных очень велики (>60 ГБ), поэтому понятно, что процесс занимает много времени, и я хотел бы его ускорить. Ниже я перечислил, что я пытался сделать, и результаты:
[*]Использовать формат паркета. Это решение нежизнеспособно, поскольку требует Spark на стороне R. [*]Использовать формат растушевки. Это решение оказалось нежизнеспособным, поскольку в текущем состоянии файлы растушевки имеют проблемы с очень большими файлами (>300 000 000 записей).
В настоящее время я исследую идею хранения фрейма данных в рабочей памяти и каким-то образом передавать объект между R и Python без выполнения процесса ввода-вывода записи и чтения файла. Я искал в Интернете, но не нашел подходящего решения. Я проверяю, есть ли у кого-нибудь здесь опыт работы с подобными проектами или какие-либо другие предложения. На данный момент самое близкое, что я нашел, — это объединение сценариев Python и R в один сценарий в стиле блокнота/уценки с возможностью интерпретировать код как R, так и Python, однако я ищу решение, которое сохранит модульность сценариев. . Мы ценим любые предложения. Спасибо!