У меня есть большой data.frame, загруженный в память в экземпляре R на одной машине, и я использую Rserve, чтобы разрешить доступ к этим данным от удаленных клиентов. Я хотел бы иметь возможность удаленно вносить изменения в data.frame, например добавлять столбец или изменять значение, и я хотел бы, чтобы эти изменения были доступны другим клиентам.
# server side
> xxx<-data.frame(a=1:3,b=4:6)
> run.Rserve(port = 6311, ...)
# client side
> cc<-RSconnect(port=6311, ...)
> RSeval(cc,'xxx$c<-7:9')
> RSeval(cc,'xxx')
a b c
1 1 4 7
2 2 5 8
3 3 6 9
Однако, когда я подключаюсь ко второму клиенту, он не видит изменений:
# another client
> cc2<-RSconnect(port=6311, ...)
> RSeval(cc2,'xxx')
a b
1 1 4
2 2 5
3 3 6
Когда сервер остановлен, внутренние данные также не изменяются. Изменения доступны только тому клиенту, который их внес, не совсем то, что мне нужно.
Есть ли способ заставить это работать?
data.table
fread
иfwrite
вы не заметите никакой перегрузки, предполагаемые данные являются разумными. - person Eric Lecoutre   schedule 21.02.2017