Hola:
Vuelvo a la carga con algo que resolvà hace años y que ahora me ha dejado de funcionar y no consigo arreglar. A ver si alguien me sugiere algún enfoque o directamente la solucion.
Utilizo R en muchos procesos ETL y la cuestión es que me encuentro con que tengo que hacer inserts en un BBDD de SQL Server de varios miles (a veces millones de registros) que mientras R las realiza parece que no está haciendo nada.
La solución que conseguà hacer en su momento fue paralelizar el proceso de inserción en dos procesos distintos usando el paquete snowfall.
-Un proceso se encargaba de la propia inserción de los datos.
-El otro proceso mostraba una barra de progreso que se construÃa consultando la tabla (tab) donde se insertaban los registros (datos) para monitorizar su proceso.
La subida al servidor es esta función:
subida <- function( datos, tab)
{
flush.console()
canal2 <- odbcDriverConnect( "case=nochange; Driver=xxx; Server=xxx; Database=xxx; uid=xxx; pwd=xxx; wsid=xxx;")
sqlSave(canal2,datos,tablename= tab, rownames = FALSE, append=TRUE, fast=TRUE )
close(canal2)
rm(canal2)
}
La barra de progreso se toma de esta función:
pb <-function( datos,tab){
##Creamos canal de conexion a BBDD
canal1 <- odbcDriverConnect( "case=nochange; Driver=SQL Server; Server=xxx; Database=xxx; uid=xxx; pwd=xx; wsid=ESMADN1003;;")
##Obtenemos conteos de registros##################
#Numero de registro que se van a cargar
asubir <- as.numeric(nrow(datos))
#Numero de registro que ya hay en la tabla
entabla <- as.numeric(sqlQuery(canal1,paste("SELECT Count(*) ", " FROM ",tab, sep="")))
#Numero de registros cargados en el momento n
total <- as.numeric(0)
#Frecuenca de actualizacion de la barra
frec <- 0.1
##Creamos barra de progreso
barra <- winProgressBar(title="Subiendo datos a SQL ", label = "Subido el: ", min= 0, max= 1,initial= 0, width = 800)
##Mientras los registros que quedan por subir sean inferiores a los que actualmente hay en la tabla se muestra la barra
while ( entabla + asubir > total )
{
#Reconectamos
canal1 <- odbcReConnect(canal1)
#Obtenemos registros actuales en la tabla (los que habia + los que han subido hasta el momento)
total <- as.numeric(sqlQuery(canal1,paste("SELECT Count(*) FROM ",tab, sep="")))
#Calculamos porcentaje de registros subidos en el momento
porcen <- as.numeric((total - entabla) / asubir)
#Actualizamos barra de progreso
setWinProgressBar(barra, porcen,title="SUBIENDO DATOS A SQL", label =paste("Subido el: ", round(porcen *100,0), "% de los datos. Quedan por subir ",(entabla + asubir)-total, " registros de ", asubir, "." , sep=""))
#Actualizamos consola
flush.console()
Sys.sleep(frec)
}
close(barra)
}
Ahora estoy intentando usar el paquete parallel (en lugar de snowfall que ya no me funciona) haciendo esto.
library(parallel)
library(RODBC)
##Creo un cluster con dos nodos
cl <-makeCluster(2)
##Exporto datos y funciones a los dos cluster
clusterExport(cl,varlist=c("pb","subida","datos","tab"))
##En el primer cluster hago la inserción en el segundo la barra de progreso
clusterApply(cl,subida(datos,tab),pb(datos,tab) )
La inserción la realiza correctamente pero la barra de progreso no aparece por ningún lado :( y en el monitor de procesos aparecen dos Rscript.exe corriendo (uso Windows 7)
Si alguien quiere que le proporcione la función que construà usando snowfall (y que ahora tampoco muestra la barra) se la puedo enviar para destriparla.
Muchas gracias
Un saludo
José Luis Gilsanz Gómez
EstadÃstica
Departamento Técnico Entidades Financieras
JLL Valoraciones S.A. (Jones Lang LaSalle España S.A.)
Paseo de la Castellana 130 - 1ª; 28046 Madrid
Tel: +34 91 454 96 94
Fax +34 91 541 42 64
jll.es
SÃguenos en: Twitter<https://twitter.com/JLLSpain> I Linkedin<https://www.linkedin.com/profile/view?id=173156047&trk=nav_responsive_tab_profile> I Youtube<https://www.youtube.com/user/joneslanglasallesp> I Blog<http://www.jllinmuebles.es/elblogdelosanillos/>
PPiense en el medio ambiente antes de imprimir este e-mail
Los datos personales que en esta comunicación aparecen, asà como los que nuestra empresa mantiene de Vd. y de su empresa, son tratados con la finalidad de mantener el contacto asà como realizar las gestiones que en esta aparecen (Ley Orgánica 15/1999, de 13 de diciembre, de Protección de Datos de Carácter Personal).
Puede ejercer sus derechos de acceso, rectificación, cancelación y oposición dirigiéndose a atencion.clientesth en tasacionesh.com<mailto:atencion.clientesth en tasacionesh.com>.
La utilización de su dirección de correo electrónico por parte de nuestra empresa queda sujeta a las disposiciones de la Ley 34/2002, de Servicios de la Sociedad de la Información y el Comercio Electrónico. Si Vd. recibe comunicación comercial por nuestra parte y desea dejar de recibirla, rogamos nos lo comunique por vÃa electrónica a través de la dirección atencion.clientesth en tasacionesh.com <mailto:atencion.clientesth en tasacionesh.com> .
JLL Valoraciones
Registration number: A-28/806222.
Registered Office: Pº de la Castellana, 130 - 1ª ; 28046 Madrid
This e-mail is for the use of the intended recipient(s) only. If you have received this e-mail in error, please notify the sender immediately and then delete it. If you are not the intended recipient, you must not use, disclose or distribute this e-mail without the author's prior permission. We have taken precautions to minimise the risk of transmitting software viruses, but we advise you to carry out your own virus checks on any attachment to this message. We cannot accept liability for any loss or damage caused by software viruses. If you are the intended recipient and you do not wish to receive similar electronic messages from us in future then please respond to the sender to this effect
[R-es] Procesos paralelos
7 messages · miguel.angel.rodriguez.muinos en sergas.es, Carlos J. Gil Bellosta, Javier Marcuzzi +1 more
Hola José Luis.
Te da algún error? o simplemente no aparece la barra de progreso?
... y si, en vez de usar winProgressBar(), pruebas con la función tkProgressBar() del paquete tcltk ¿?
Un saludo,
Miguel.
El 12/04/2016 a las 11:04, Gilsanz, Jose Luis escribió:
Hola:
Vuelvo a la carga con algo que resolv? hace a?os y que ahora me ha dejado de funcionar y no consigo arreglar. A ver si alguien me sugiere alg?n enfoque o directamente la solucion.
Utilizo R en muchos procesos ETL y la cuesti?n es que me encuentro con que tengo que hacer inserts en un BBDD de SQL Server de varios miles (a veces millones de registros) que mientras R las realiza parece que no est? haciendo nada.
La soluci?n que consegu? hacer en su momento fue paralelizar el proceso de inserci?n en dos procesos distintos usando el paquete snowfall.
-Un proceso se encargaba de la propia inserci?n de los datos.
-El otro proceso mostraba una barra de progreso que se constru?a consultando la tabla (tab) donde se insertaban los registros (datos) para monitorizar su proceso.
La subida al servidor es esta funci?n:
subida <- function( datos, tab)
{
flush.console()
canal2 <- odbcDriverConnect( "case=nochange; Driver=xxx; Server=xxx; Database=xxx; uid=xxx; pwd=xxx; wsid=xxx;")
sqlSave(canal2,datos,tablename= tab, rownames = FALSE, append=TRUE, fast=TRUE )
close(canal2)
rm(canal2)
}
La barra de progreso se toma de esta funci?n:
pb <-function( datos,tab){
##Creamos canal de conexion a BBDD
canal1 <- odbcDriverConnect( "case=nochange; Driver=SQL Server; Server=xxx; Database=xxx; uid=xxx; pwd=xx; wsid=ESMADN1003;;")
##Obtenemos conteos de registros##################
#Numero de registro que se van a cargar
asubir <- as.numeric(nrow(datos))
#Numero de registro que ya hay en la tabla
entabla <- as.numeric(sqlQuery(canal1,paste("SELECT Count(*) ", " FROM ",tab, sep="")))
#Numero de registros cargados en el momento n
total <- as.numeric(0)
#Frecuenca de actualizacion de la barra
frec <- 0.1
##Creamos barra de progreso
barra <- winProgressBar(title="Subiendo datos a SQL ", label = "Subido el: ", min= 0, max= 1,initial= 0, width = 800)
##Mientras los registros que quedan por subir sean inferiores a los que actualmente hay en la tabla se muestra la barra
while ( entabla + asubir > total )
{
#Reconectamos
canal1 <- odbcReConnect(canal1)
#Obtenemos registros actuales en la tabla (los que habia + los que han subido hasta el momento)
total <- as.numeric(sqlQuery(canal1,paste("SELECT Count(*) FROM ",tab, sep="")))
#Calculamos porcentaje de registros subidos en el momento
porcen <- as.numeric((total - entabla) / asubir)
#Actualizamos barra de progreso
setWinProgressBar(barra, porcen,title="SUBIENDO DATOS A SQL", label =paste("Subido el: ", round(porcen *100,0), "% de los datos. Quedan por subir ",(entabla + asubir)-total, " registros de ", asubir, "." , sep=""))
#Actualizamos consola
flush.console()
Sys.sleep(frec)
}
close(barra)
}
Ahora estoy intentando usar el paquete parallel (en lugar de snowfall que ya no me funciona) haciendo esto.
library(parallel)
library(RODBC)
##Creo un cluster con dos nodos
cl <-makeCluster(2)
##Exporto datos y funciones a los dos cluster
clusterExport(cl,varlist=c("pb","subida","datos","tab"))
##En el primer cluster hago la inserci?n en el segundo la barra de progreso
clusterApply(cl,subida(datos,tab),pb(datos,tab) )
La inserci?n la realiza correctamente pero la barra de progreso no aparece por ning?n lado :( y en el monitor de procesos aparecen dos Rscript.exe corriendo (uso Windows 7)
Si alguien quiere que le proporcione la funci?n que constru? usando snowfall (y que ahora tampoco muestra la barra) se la puedo enviar para destriparla.
Muchas gracias
Un saludo
Jos? Luis Gilsanz G?mez
Estad?stica
Departamento T?cnico Entidades Financieras
JLL Valoraciones S.A. (Jones Lang LaSalle Espa?a S.A.)
Paseo de la Castellana 130 - 1?; 28046 Madrid
Tel: +34 91 454 96 94
Fax +34 91 541 42 64
jll.es
S?guenos en: Twitter<https://twitter.com/JLLSpain><https://twitter.com/JLLSpain> I Linkedin<https://www.linkedin.com/profile/view?id=173156047&trk=nav_responsive_tab_profile><https://www.linkedin.com/profile/view?id=173156047&trk=nav_responsive_tab_profile> I Youtube<https://www.youtube.com/user/joneslanglasallesp><https://www.youtube.com/user/joneslanglasallesp> I Blog<http://www.jllinmuebles.es/elblogdelosanillos/><http://www.jllinmuebles.es/elblogdelosanillos/>
PPiense en el medio ambiente antes de imprimir este e-mail
Los datos personales que en esta comunicaci?n aparecen, as? como los que nuestra empresa mantiene de Vd. y de su empresa, son tratados con la finalidad de mantener el contacto as? como realizar las gestiones que en esta aparecen (Ley Org?nica 15/1999, de 13 de diciembre, de Protecci?n de Datos de Car?cter Personal).
Puede ejercer sus derechos de acceso, rectificaci?n, cancelaci?n y oposici?n dirigi?ndose a atencion.clientesth en tasacionesh.com<mailto:atencion.clientesth en tasacionesh.com><mailto:atencion.clientesth en tasacionesh.com><mailto:atencion.clientesth en tasacionesh.com>.
La utilizaci?n de su direcci?n de correo electr?nico por parte de nuestra empresa queda sujeta a las disposiciones de la Ley 34/2002, de Servicios de la Sociedad de la Informaci?n y el Comercio Electr?nico. Si Vd. recibe comunicaci?n comercial por nuestra parte y desea dejar de recibirla, rogamos nos lo comunique por v?a electr?nica a trav?s de la direcci?n atencion.clientesth en tasacionesh.com<mailto:atencion.clientesth en tasacionesh.com> <mailto:atencion.clientesth en tasacionesh.com><mailto:atencion.clientesth en tasacionesh.com> .
JLL Valoraciones
Registration number: A-28/806222.
Registered Office: P? de la Castellana, 130 - 1? ; 28046 Madrid
This e-mail is for the use of the intended recipient(s) only. If you have received this e-mail in error, please notify the sender immediately and then delete it. If you are not the intended recipient, you must not use, disclose or distribute this e-mail without the author's prior permission. We have taken precautions to minimise the risk of transmitting software viruses, but we advise you to carry out your own virus checks on any attachment to this message. We cannot accept liability for any loss or damage caused by software viruses. If you are the intended recipient and you do not wish to receive similar electronic messages from us in future then please respond to the sender to this effect
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org<mailto:R-help-es en r-project.org>
https://stat.ethz.ch/mailman/listinfo/r-help-es
--
Miguel Ãngel RodrÃguez MuÃños
Asesoramento en Informática
Dirección Xeral de Saúde Pública
ConsellerÃa de Sanidade
Xunta de Galicia
http://dxsp.sergas.es
________________________________
Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimÃnea. A distribución ou copia desta mensaxe non está autorizada.
Nota: La información contenida en este mensaje y sus posibles documentos adjuntos es privada y confidencial y está dirigida únicamente a su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje, por favor elimÃnelo. La distribución o copia de este mensaje no está autorizada.
See more languages: http://www.sergas.es/aviso-confidencialidad
Hola, ¿qué tal? Si la base de datos de destino es SQL Server, ¿por qué no pruebas con la función dbBulkCopy del paquete https://github.com/agstudy/rsqlserver? DeberÃa poder cargar millones de registros en segundos. Al menos, en una única transacción en lugar de múltiples como con sqlSave. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El dÃa 12 de abril de 2016, 11:55, <miguel.angel.rodriguez.muinos en sergas.es> escribió:
Hola José Luis.
Te da algún error? o simplemente no aparece la barra de progreso?
... y si, en vez de usar winProgressBar(), pruebas con la función tkProgressBar() del paquete tcltk ¿?
Un saludo,
Miguel.
El 12/04/2016 a las 11:04, Gilsanz, Jose Luis escribió:
Hola:
Vuelvo a la carga con algo que resolv? hace a?os y que ahora me ha dejado de funcionar y no consigo arreglar. A ver si alguien me sugiere alg?n enfoque o directamente la solucion.
Utilizo R en muchos procesos ETL y la cuesti?n es que me encuentro con que tengo que hacer inserts en un BBDD de SQL Server de varios miles (a veces millones de registros) que mientras R las realiza parece que no est? haciendo nada.
La soluci?n que consegu? hacer en su momento fue paralelizar el proceso de inserci?n en dos procesos distintos usando el paquete snowfall.
-Un proceso se encargaba de la propia inserci?n de los datos.
-El otro proceso mostraba una barra de progreso que se constru?a consultando la tabla (tab) donde se insertaban los registros (datos) para monitorizar su proceso.
La subida al servidor es esta funci?n:
subida <- function( datos, tab)
{
flush.console()
canal2 <- odbcDriverConnect( "case=nochange; Driver=xxx; Server=xxx; Database=xxx; uid=xxx; pwd=xxx; wsid=xxx;")
sqlSave(canal2,datos,tablename= tab, rownames = FALSE, append=TRUE, fast=TRUE )
close(canal2)
rm(canal2)
}
La barra de progreso se toma de esta funci?n:
pb <-function( datos,tab){
##Creamos canal de conexion a BBDD
canal1 <- odbcDriverConnect( "case=nochange; Driver=SQL Server; Server=xxx; Database=xxx; uid=xxx; pwd=xx; wsid=ESMADN1003;;")
##Obtenemos conteos de registros##################
#Numero de registro que se van a cargar
asubir <- as.numeric(nrow(datos))
#Numero de registro que ya hay en la tabla
entabla <- as.numeric(sqlQuery(canal1,paste("SELECT Count(*) ", " FROM ",tab, sep="")))
#Numero de registros cargados en el momento n
total <- as.numeric(0)
#Frecuenca de actualizacion de la barra
frec <- 0.1
##Creamos barra de progreso
barra <- winProgressBar(title="Subiendo datos a SQL ", label = "Subido el: ", min= 0, max= 1,initial= 0, width = 800)
##Mientras los registros que quedan por subir sean inferiores a los que actualmente hay en la tabla se muestra la barra
while ( entabla + asubir > total )
{
#Reconectamos
canal1 <- odbcReConnect(canal1)
#Obtenemos registros actuales en la tabla (los que habia + los que han subido hasta el momento)
total <- as.numeric(sqlQuery(canal1,paste("SELECT Count(*) FROM ",tab, sep="")))
#Calculamos porcentaje de registros subidos en el momento
porcen <- as.numeric((total - entabla) / asubir)
#Actualizamos barra de progreso
setWinProgressBar(barra, porcen,title="SUBIENDO DATOS A SQL", label =paste("Subido el: ", round(porcen *100,0), "% de los datos. Quedan por subir ",(entabla + asubir)-total, " registros de ", asubir, "." , sep=""))
#Actualizamos consola
flush.console()
Sys.sleep(frec)
}
close(barra)
}
Ahora estoy intentando usar el paquete parallel (en lugar de snowfall que ya no me funciona) haciendo esto.
library(parallel)
library(RODBC)
##Creo un cluster con dos nodos
cl <-makeCluster(2)
##Exporto datos y funciones a los dos cluster
clusterExport(cl,varlist=c("pb","subida","datos","tab"))
##En el primer cluster hago la inserci?n en el segundo la barra de progreso
clusterApply(cl,subida(datos,tab),pb(datos,tab) )
La inserci?n la realiza correctamente pero la barra de progreso no aparece por ning?n lado :( y en el monitor de procesos aparecen dos Rscript.exe corriendo (uso Windows 7)
Si alguien quiere que le proporcione la funci?n que constru? usando snowfall (y que ahora tampoco muestra la barra) se la puedo enviar para destriparla.
Muchas gracias
Un saludo
Jos? Luis Gilsanz G?mez
Estad?stica
Departamento T?cnico Entidades Financieras
JLL Valoraciones S.A. (Jones Lang LaSalle Espa?a S.A.)
Paseo de la Castellana 130 - 1?; 28046 Madrid
Tel: +34 91 454 96 94
Fax +34 91 541 42 64
jll.es
S?guenos en: Twitter<https://twitter.com/JLLSpain><https://twitter.com/JLLSpain> I Linkedin<https://www.linkedin.com/profile/view?id=173156047&trk=nav_responsive_tab_profile><https://www.linkedin.com/profile/view?id=173156047&trk=nav_responsive_tab_profile> I Youtube<https://www.youtube.com/user/joneslanglasallesp><https://www.youtube.com/user/joneslanglasallesp> I Blog<http://www.jllinmuebles.es/elblogdelosanillos/><http://www.jllinmuebles.es/elblogdelosanillos/>
PPiense en el medio ambiente antes de imprimir este e-mail
Los datos personales que en esta comunicaci?n aparecen, as? como los que nuestra empresa mantiene de Vd. y de su empresa, son tratados con la finalidad de mantener el contacto as? como realizar las gestiones que en esta aparecen (Ley Org?nica 15/1999, de 13 de diciembre, de Protecci?n de Datos de Car?cter Personal).
Puede ejercer sus derechos de acceso, rectificaci?n, cancelaci?n y oposici?n dirigi?ndose a atencion.clientesth en tasacionesh.com<mailto:atencion.clientesth en tasacionesh.com><mailto:atencion.clientesth en tasacionesh.com><mailto:atencion.clientesth en tasacionesh.com>.
La utilizaci?n de su direcci?n de correo electr?nico por parte de nuestra empresa queda sujeta a las disposiciones de la Ley 34/2002, de Servicios de la Sociedad de la Informaci?n y el Comercio Electr?nico. Si Vd. recibe comunicaci?n comercial por nuestra parte y desea dejar de recibirla, rogamos nos lo comunique por v?a electr?nica a trav?s de la direcci?n atencion.clientesth en tasacionesh.com<mailto:atencion.clientesth en tasacionesh.com> <mailto:atencion.clientesth en tasacionesh.com><mailto:atencion.clientesth en tasacionesh.com> .
JLL Valoraciones
Registration number: A-28/806222.
Registered Office: P? de la Castellana, 130 - 1? ; 28046 Madrid
This e-mail is for the use of the intended recipient(s) only. If you have received this e-mail in error, please notify the sender immediately and then delete it. If you are not the intended recipient, you must not use, disclose or distribute this e-mail without the author's prior permission. We have taken precautions to minimise the risk of transmitting software viruses, but we advise you to carry out your own virus checks on any attachment to this message. We cannot accept liability for any loss or damage caused by software viruses. If you are the intended recipient and you do not wish to receive similar electronic messages from us in future then please respond to the sender to this effect
[[alternative HTML version deleted]]
_______________________________________________ R-help-es mailing list R-help-es en r-project.org<mailto:R-help-es en r-project.org> https://stat.ethz.ch/mailman/listinfo/r-help-es -- Miguel Ãngel RodrÃguez MuÃños Asesoramento en Informática Dirección Xeral de Saúde Pública ConsellerÃa de Sanidade Xunta de Galicia http://dxsp.sergas.es ________________________________ Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimÃnea. A distribución ou copia desta mensaxe non está autorizada. Nota: La información contenida en este mensaje y sus posibles documentos adjuntos es privada y confidencial y está dirigida únicamente a su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje, por favor elimÃnelo. La distribución o copia de este mensaje no está autorizada. See more languages: http://www.sergas.es/aviso-confidencialidad [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Miguel: Mil gracias por tu sugerencia de usar la barra de progreso tcltk , me funciona perfectamente y además la barra de progreso es más bonita ? Ahora me entra la curiosidad malsana de saber porque con la barra de windows no sale la barrra y con tcltk si que aparece. Carlos: No habia oido hablar de ese paquete pero en cuanto termine con los ETL que tengo pendientes voy a empollarme la web del paquete que me has enviado porque seguro que agiliza muchisimo todos estos procesos. Muchas gracias a los dos por la variedad y calidad de las soluciones José Luis Gilsanz Gómez EstadÃstica Departamento Técnico Entidades Financieras JLL Valoraciones S.A. (Jones Lang LaSalle España S.A.) Paseo de la Castellana 130 - 1ª; 28046 Madrid Tel: +34 91 454 96 94 Fax +34 91 541 42 64 jll.es SÃguenos en: Twitter I Linkedin I Youtube I Blog ?Piense en el medio ambiente antes de imprimir este e-mail Los datos personales que en esta comunicación aparecen, asà como los que nuestra empresa mantiene de Vd. y de su empresa, son tratados con la finalidad de mantener el contacto asà como realizar las gestiones que en esta aparecen (Ley Orgánica 15/1999, de 13 de diciembre, de Protección de Datos de Carácter Personal). Puede ejercer sus derechos de acceso, rectificación, cancelación y oposición dirigiéndose a atencion.clientesth en tasacionesh.com. La utilización de su dirección de correo electrónico por parte de nuestra empresa queda sujeta a las disposiciones de la Ley 34/2002, de Servicios de la Sociedad de la Información y el Comercio Electrónico. Si Vd. recibe comunicación comercial por nuestra parte y desea dejar de recibirla, rogamos nos lo comunique por vÃa electrónica a través de la dirección atencion.clientesth en tasacionesh.com .
-----Mensaje original-----
De: gilbellosta en gmail.com [mailto:gilbellosta en gmail.com] En nombre de
Carlos J. Gil Bellosta
Enviado el: martes, 12 de abril de 2016 14:37
Para: Miguel Angel Rodriguez Muiños
CC: Gilsanz, Jose Luis; r-help-es
Asunto: Re: [R-es] Procesos paralelos
Hola, ¿qué tal?
Si la base de datos de destino es SQL Server, ¿por qué no pruebas con la
función dbBulkCopy del paquete https://github.com/agstudy/rsqlserver?
DeberÃa poder cargar millones de registros en segundos. Al menos, en una
única transacción en lugar de múltiples como con sqlSave.
Un saludo,
Carlos J. Gil Bellosta
El dÃa 12 de abril de 2016, 11:55,
<miguel.angel.rodriguez.muinos en sergas.es<mailto:miguel.angel.rodriguez.muinos en sergas.es>> escribió:
Hola José Luis.
Te da algún error? o simplemente no aparece la barra de progreso?
... y si, en vez de usar winProgressBar(), pruebas con la función
tkProgressBar() del paquete tcltk ¿?
Un saludo,
Miguel.
El 12/04/2016 a las 11:04, Gilsanz, Jose Luis escribió:
Hola:
Vuelvo a la carga con algo que resolv hace a os y que ahora me ha dejado
de funcionar y no consigo arreglar. A ver si alguien me sugiere alg n enfoque
o directamente la solucion.
Utilizo R en muchos procesos ETL y la cuesti n es que me encuentro con que
tengo que hacer inserts en un BBDD de SQL Server de varios miles (a veces
millones de registros) que mientras R las realiza parece que no est haciendo
nada.
La soluci n que consegu hacer en su momento fue paralelizar el proceso de
inserci n en dos procesos distintos usando el paquete snowfall.
-Un proceso se encargaba de la propia inserci n de los datos.
-El otro proceso mostraba una barra de progreso que se constru a
consultando la tabla (tab) donde se insertaban los registros (datos) para
monitorizar su proceso.
La subida al servidor es esta funci n:
subida <- function( datos, tab)
{
flush.console()
canal2 <- odbcDriverConnect( "case=nochange;
Driver=xxx; Server=xxx; Database=xxx; uid=xxx; pwd=xxx; wsid=xxx;")
sqlSave(canal2,datos,tablename= tab, rownames =
FALSE, append=TRUE, fast=TRUE )
close(canal2)
rm(canal2)
}
La barra de progreso se toma de esta funci n:
pb <-function( datos,tab){
##Creamos canal de conexion a BBDD
canal1 <- odbcDriverConnect( "case=nochange;
Driver=SQL Server; Server=xxx; Database=xxx; uid=xxx; pwd=xx;
wsid=ESMADN1003;;")
##Obtenemos conteos de registros##################
#Numero de registro que se van a cargar
asubir <- as.numeric(nrow(datos))
#Numero de registro que ya hay en la tabla
entabla <- as.numeric(sqlQuery(canal1,paste("SELECT
Count(*) ", " FROM ",tab, sep="")))
#Numero de registros cargados en el momento n
total <- as.numeric(0)
#Frecuenca de actualizacion de la barra
frec <- 0.1
##Creamos barra de progreso
barra <- winProgressBar(title="Subiendo datos a SQL ", label =
"Subido el: ", min= 0, max= 1,initial= 0, width = 800)
##Mientras los registros que quedan por subir sean inferiores a los
que actualmente hay en la tabla se muestra la barra
while ( entabla + asubir > total )
{
#Reconectamos
canal1 <-
odbcReConnect(canal1)
#Obtenemos registros actuales en la tabla (los que
habia + los que han subido hasta el momento)
total <-
as.numeric(sqlQuery(canal1,paste("SELECT Count(*) FROM ",tab,
sep="")))
#Calculamos porcentaje de registros subidos en el
momento
porcen <-
as.numeric((total - entabla) / asubir)
#Actualizamos barra de progreso
setWinProgressBar(barra, porcen,title="SUBIENDO DATOS A SQL", label
=paste("Subido el: ", round(porcen *100,0), "% de los datos. Quedan
por subir ",(entabla + asubir)-total, " registros de ", asubir, "." ,
sep=""))
#Actualizamos consola
flush.console()
Sys.sleep(frec)
}
close(barra)
}
Ahora estoy intentando usar el paquete parallel (en lugar de snowfall que
ya no me funciona) haciendo esto.
library(parallel)
library(RODBC)
##Creo un cluster con dos nodos
cl <-makeCluster(2)
##Exporto datos y funciones a los dos cluster
clusterExport(cl,varlist=c("pb","subida","datos","tab"))
##En el primer cluster hago la inserci n en el segundo la barra de
progreso
clusterApply(cl,subida(datos,tab),pb(datos,tab) )
La inserci n la realiza correctamente pero la barra de progreso no
aparece por ning n lado :( y en el monitor de procesos aparecen dos
Rscript.exe corriendo (uso Windows 7)
Si alguien quiere que le proporcione la funci n que constru usando snowfall
(y que ahora tampoco muestra la barra) se la puedo enviar para destriparla.
Muchas gracias
Un saludo
Jos Luis Gilsanz G mez
Estad stica
Departamento T cnico Entidades Financieras JLL Valoraciones S.A.
(Jones Lang LaSalle Espa a S.A.) Paseo de la Castellana 130 - 1 ;
28046 Madrid
Tel: +34 91 454 96 94
Fax +34 91 541 42 64
jll.es
S guenos en:
Linkedin<https://www.linkedin.com/profile/view?id=173156047&trk=nav_re
sponsive_tab_profile><https://www.linkedin.com/profile/view?id=1731560
47&trk=nav_responsive_tab_profile> I
w.y
outube.com/user/joneslanglasallesp> I
uebles.es/elblogdelosanillos/> PPiense en el medio ambiente antes de
imprimir este e-mail
Los datos personales que en esta comunicaci n aparecen, as como los que
nuestra empresa mantiene de Vd. y de su empresa, son tratados con la
finalidad de mantener el contacto as como realizar las gestiones que en esta
aparecen (Ley Org nica 15/1999, de 13 de diciembre, de Protecci n de Datos
de Car cter Personal).
Puede ejercer sus derechos de acceso, rectificaci n, cancelaci n y oposici n
dirigi ndose a
atencion.clientesth en tasacionesh.com<mailto:atencion.clientesth en tasacione<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com>
sh.com><mailto:atencion.clientesth en tasacionesh.com><mailto:atencion.clie<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com>
ntesth en tasacionesh.com<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com>>.
La utilizaci n de su direcci n de correo electr nico por parte de nuestra
empresa queda sujeta a las disposiciones de la Ley 34/2002, de Servicios de la
Sociedad de la Informaci n y el Comercio Electr nico. Si Vd. recibe comunicaci
n comercial por nuestra parte y desea dejar de recibirla, rogamos nos lo
comunique por v a electr nica a trav s de la direcci n
atencion.clientesth en tasacionesh.com<mailto:atencion.clientesth en tasacione<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com>
sh.com<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com>>
<mailto:atencion.clientesth en tasacionesh.com><mailto:atencion.clientesth@<mailto:atencion.clientesth en tasacionesh.com>
tasacionesh.com<mailto:atencion.clientesth en tasacionesh.com>> .
JLL Valoraciones
Registration number: A-28/806222.
Registered Office: P de la Castellana, 130 - 1 ; 28046 Madrid
This e-mail is for the use of the intended recipient(s) only. If you
have received this e-mail in error, please notify the sender
immediately and then delete it. If you are not the intended recipient,
you must not use, disclose or distribute this e-mail without the
author's prior permission. We have taken precautions to minimise the
risk of transmitting software viruses, but we advise you to carry out
your own virus checks on any attachment to this message. We cannot
accept liability for any loss or damage caused by software viruses. If
you are the intended recipient and you do not wish to receive similar
electronic messages from us in future then please respond to the
sender to this effect
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org<mailto:R-help-es en r-project.org<mailto:R-help-es en r-project.org%3cmailto:R-help-es en r-project.org>>
--
Miguel Ãngel RodrÃguez MuÃños
Asesoramento en Informática
Dirección Xeral de Saúde Pública
ConsellerÃa de Sanidade
Xunta de Galicia
________________________________
Nota: A información contida nesta mensaxe e os seus posibles documentos
adxuntos é privada e confidencial e está dirixida únicamente ó seu
destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe,
por favor elimÃnea. A distribución ou copia desta mensaxe non está
autorizada.
Nota: La información contenida en este mensaje y sus posibles
documentos adjuntos es privada y confidencial y está dirigida únicamente a
su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje,
por favor elimÃnelo. La distribución o copia de este mensaje no está
autorizada.
See more languages: http://www.sergas.es/aviso-confidencialidad
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org<mailto:R-help-es en r-project.org>
Estimado Gilsanz Algo que puede ser, ¿tiene instalado tcltk en Windows? Yo ante un problema parecido lo solucioné realizando un contador, en mi caso conozco la cantidad de consultas, entonces simplemente ?imprimo? en pantalla 1 de 100, 2 de 100, etc. No es gráfico, pero R me informa dos cosas, que está trabajando y cuánto falta, feo a la vista pero muy simple. Javier Rubén Marcuzzi De: Gilsanz, Jose Luis Enviado: martes, 12 de abril de 2016 10:40 Para: Carlos J. Gil Bellosta ; Miguel Angel Rodriguez Muiños CC: r-help-es Asunto: Re: [R-es] Procesos paralelos Miguel: Mil gracias por tu sugerencia de usar la barra de progreso tcltk , me funciona perfectamente y además la barra de progreso es más bonita ? Ahora me entra la curiosidad malsana de saber porque con la barra de windows no sale la barrra y con tcltk si que aparece. Carlos: No habia oido hablar de ese paquete pero en cuanto termine con los ETL que tengo pendientes voy a empollarme la web del paquete que me has enviado porque seguro que agiliza muchisimo todos estos procesos. Muchas gracias a los dos por la variedad y calidad de las soluciones José Luis Gilsanz Gómez EstadÃstica Departamento Técnico Entidades Financieras JLL Valoraciones S.A. (Jones Lang LaSalle España S.A.) Paseo de la Castellana 130 - 1ª; 28046 Madrid Tel: +34 91 454 96 94 Fax +34 91 541 42 64 jll.es SÃguenos en: Twitter I Linkedin I Youtube I Blog ?Piense en el medio ambiente antes de imprimir este e-mail Los datos personales que en esta comunicación aparecen, asà como los que nuestra empresa mantiene de Vd. y de su empresa, son tratados con la finalidad de mantener el contacto asà como realizar las gestiones que en esta aparecen (Ley Orgánica 15/1999, de 13 de diciembre, de Protección de Datos de Carácter Personal). Puede ejercer sus derechos de acceso, rectificación, cancelación y oposición dirigiéndose a atencion.clientesth en tasacionesh.com. La utilización de su dirección de correo electrónico por parte de nuestra empresa queda sujeta a las disposiciones de la Ley 34/2002, de Servicios de la Sociedad de la Información y el Comercio Electrónico. Si Vd. recibe comunicación comercial por nuestra parte y desea dejar de recibirla, rogamos nos lo comunique por vÃa electrónica a través de la dirección atencion.clientesth en tasacionesh.com .
-----Mensaje original-----
De: gilbellosta en gmail.com [mailto:gilbellosta en gmail.com] En nombre de
Carlos J. Gil Bellosta
Enviado el: martes, 12 de abril de 2016 14:37
Para: Miguel Angel Rodriguez Muiños
CC: Gilsanz, Jose Luis; r-help-es
Asunto: Re: [R-es] Procesos paralelos
Hola, ¿qué tal?
Si la base de datos de destino es SQL Server, ¿por qué no pruebas con la
función dbBulkCopy del paquete https://github.com/agstudy/rsqlserver?
DeberÃa poder cargar millones de registros en segundos. Al menos, en una
única transacción en lugar de múltiples como con sqlSave.
Un saludo,
Carlos J. Gil Bellosta
El dÃa 12 de abril de 2016, 11:55,
<miguel.angel.rodriguez.muinos en sergas.es<mailto:miguel.angel.rodriguez.muinos en sergas.es>> escribió:
Hola José Luis.
Te da algún error? o simplemente no aparece la barra de progreso?
... y si, en vez de usar winProgressBar(), pruebas con la función
tkProgressBar() del paquete tcltk ¿?
Un saludo,
Miguel.
El 12/04/2016 a las 11:04, Gilsanz, Jose Luis escribió:
Hola:
Vuelvo a la carga con algo que resolv hace a os y que ahora me ha dejado
de funcionar y no consigo arreglar. A ver si alguien me sugiere alg n enfoque
o directamente la solucion.
Utilizo R en muchos procesos ETL y la cuesti n es que me encuentro con que
tengo que hacer inserts en un BBDD de SQL Server de varios miles (a veces
millones de registros) que mientras R las realiza parece que no est haciendo
nada.
La soluci n que consegu hacer en su momento fue paralelizar el proceso de
inserci n en dos procesos distintos usando el paquete snowfall.
-Un proceso se encargaba de la propia inserci n de los datos.
-El otro proceso mostraba una barra de progreso que se constru a
consultando la tabla (tab) donde se insertaban los registros (datos) para
monitorizar su proceso.
La subida al servidor es esta funci n:
subida <- function( datos, tab)
{
flush.console()
canal2 <- odbcDriverConnect( "case=nochange;
Driver=xxx; Server=xxx; Database=xxx; uid=xxx; pwd=xxx; wsid=xxx;")
sqlSave(canal2,datos,tablename= tab, rownames =
FALSE, append=TRUE, fast=TRUE )
close(canal2)
rm(canal2)
}
La barra de progreso se toma de esta funci n:
pb <-function( datos,tab){
##Creamos canal de conexion a BBDD
canal1 <- odbcDriverConnect( "case=nochange;
Driver=SQL Server; Server=xxx; Database=xxx; uid=xxx; pwd=xx;
wsid=ESMADN1003;;")
##Obtenemos conteos de registros##################
#Numero de registro que se van a cargar
asubir <- as.numeric(nrow(datos))
#Numero de registro que ya hay en la tabla
entabla <- as.numeric(sqlQuery(canal1,paste("SELECT
Count(*) ", " FROM ",tab, sep="")))
#Numero de registros cargados en el momento n
total <- as.numeric(0)
#Frecuenca de actualizacion de la barra
frec <- 0.1
##Creamos barra de progreso
barra <- winProgressBar(title="Subiendo datos a SQL ", label =
"Subido el: ", min= 0, max= 1,initial= 0, width = 800)
##Mientras los registros que quedan por subir sean inferiores a los
que actualmente hay en la tabla se muestra la barra
while ( entabla + asubir > total )
{
#Reconectamos
canal1 <-
odbcReConnect(canal1)
#Obtenemos registros actuales en la tabla (los que
habia + los que han subido hasta el momento)
total <-
as.numeric(sqlQuery(canal1,paste("SELECT Count(*) FROM ",tab,
sep="")))
#Calculamos porcentaje de registros subidos en el
momento
porcen <-
as.numeric((total - entabla) / asubir)
#Actualizamos barra de progreso
setWinProgressBar(barra, porcen,title="SUBIENDO DATOS A SQL", label
=paste("Subido el: ", round(porcen *100,0), "% de los datos. Quedan
por subir ",(entabla + asubir)-total, " registros de ", asubir, "." ,
sep=""))
#Actualizamos consola
flush.console()
Sys.sleep(frec)
}
close(barra)
}
Ahora estoy intentando usar el paquete parallel (en lugar de snowfall que
ya no me funciona) haciendo esto.
library(parallel)
library(RODBC)
##Creo un cluster con dos nodos
cl <-makeCluster(2)
##Exporto datos y funciones a los dos cluster
clusterExport(cl,varlist=c("pb","subida","datos","tab"))
##En el primer cluster hago la inserci n en el segundo la barra de
progreso
clusterApply(cl,subida(datos,tab),pb(datos,tab) )
La inserci n la realiza correctamente pero la barra de progreso no
aparece por ning n lado :( y en el monitor de procesos aparecen dos
Rscript.exe corriendo (uso Windows 7)
Si alguien quiere que le proporcione la funci n que constru usando snowfall
(y que ahora tampoco muestra la barra) se la puedo enviar para destriparla.
Muchas gracias
Un saludo
Jos Luis Gilsanz G mez
Estad stica
Departamento T cnico Entidades Financieras JLL Valoraciones S.A.
(Jones Lang LaSalle Espa a S.A.) Paseo de la Castellana 130 - 1 ;
28046 Madrid
Tel: +34 91 454 96 94
Fax +34 91 541 42 64
jll.es
S guenos en:
Linkedin<https://www.linkedin.com/profile/view?id=173156047&trk=nav_re
sponsive_tab_profile><https://www.linkedin.com/profile/view?id=1731560
47&trk=nav_responsive_tab_profile> I
w.y
outube.com/user/joneslanglasallesp> I
uebles.es/elblogdelosanillos/> PPiense en el medio ambiente antes de
imprimir este e-mail
Los datos personales que en esta comunicaci n aparecen, as como los que
nuestra empresa mantiene de Vd. y de su empresa, son tratados con la
finalidad de mantener el contacto as como realizar las gestiones que en esta
aparecen (Ley Org nica 15/1999, de 13 de diciembre, de Protecci n de Datos
de Car cter Personal).
Puede ejercer sus derechos de acceso, rectificaci n, cancelaci n y oposici n
dirigi ndose a
atencion.clientesth en tasacionesh.com<mailto:atencion.clientesth en tasacione<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com>
sh.com><mailto:atencion.clientesth en tasacionesh.com><mailto:atencion.clie<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com>
ntesth en tasacionesh.com<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com>>.
La utilizaci n de su direcci n de correo electr nico por parte de nuestra
empresa queda sujeta a las disposiciones de la Ley 34/2002, de Servicios de la
Sociedad de la Informaci n y el Comercio Electr nico. Si Vd. recibe comunicaci
n comercial por nuestra parte y desea dejar de recibirla, rogamos nos lo
comunique por v a electr nica a trav s de la direcci n
atencion.clientesth en tasacionesh.com<mailto:atencion.clientesth en tasacione<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com>
sh.com<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com>>
<mailto:atencion.clientesth en tasacionesh.com><mailto:atencion.clientesth@<mailto:atencion.clientesth en tasacionesh.com>
tasacionesh.com<mailto:atencion.clientesth en tasacionesh.com>> .
JLL Valoraciones
Registration number: A-28/806222.
Registered Office: P de la Castellana, 130 - 1 ; 28046 Madrid
This e-mail is for the use of the intended recipient(s) only. If you
have received this e-mail in error, please notify the sender
immediately and then delete it. If you are not the intended recipient,
you must not use, disclose or distribute this e-mail without the
author's prior permission. We have taken precautions to minimise the
risk of transmitting software viruses, but we advise you to carry out
your own virus checks on any attachment to this message. We cannot
accept liability for any loss or damage caused by software viruses. If
you are the intended recipient and you do not wish to receive similar
electronic messages from us in future then please respond to the
sender to this effect
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org<mailto:R-help-es en r-project.org<mailto:R-help-es en r-project.org%3cmailto:R-help-es en r-project.org>>
--
Miguel Ãngel RodrÃguez MuÃños
Asesoramento en Informática
Dirección Xeral de Saúde Pública
ConsellerÃa de Sanidade
Xunta de Galicia
________________________________
Nota: A información contida nesta mensaxe e os seus posibles documentos
adxuntos é privada e confidencial e está dirixida únicamente ó seu
destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe,
por favor elimÃnea. A distribución ou copia desta mensaxe non está
autorizada.
Nota: La información contenida en este mensaje y sus posibles
documentos adjuntos es privada y confidencial y está dirigida únicamente a
su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje,
por favor elimÃnelo. La distribución o copia de este mensaje no está
autorizada.
See more languages: http://www.sergas.es/aviso-confidencialidad
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org<mailto:R-help-es en r-project.org>
_______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Hola Javier, Hasta donde yo sé no hay nada de Tcltk instalado en mi máquina, es más, he tenido que mirar en Wikipedia que era Tcltk porque suponÃa (de forma errónea) que era otro paquete más de R, y no un lenguaje de programación en sà mismo. En mi caso los procesos ETL son muy diversos y alimentan un DW con estadÃsticas procedentes de muy diversas fuentes, como a priori no conozco el número de registros a insertar me es muy útil tener monitorizado todo el proceso para saber si R está trabajando o existe algún tipo de corte o problema en el proceso. José Luis Gilsanz Gómez EstadÃstica Departamento Técnico Entidades Financieras JLL Valoraciones S.A. (Jones Lang LaSalle España S.A.) Paseo de la Castellana 130 - 1ª; 28046 Madrid Tel: +34 91 454 96 94 Fax +34 91 541 42 64 jll.es SÃguenos en: Twitter<https://twitter.com/JLLSpain> I Linkedin<https://www.linkedin.com/profile/view?id=173156047&trk=nav_responsive_tab_profile> I Youtube<https://www.youtube.com/user/joneslanglasallesp> I Blog<http://www.jllinmuebles.es/elblogdelosanillos/> PPiense en el medio ambiente antes de imprimir este e-mail Los datos personales que en esta comunicación aparecen, asà como los que nuestra empresa mantiene de Vd. y de su empresa, son tratados con la finalidad de mantener el contacto asà como realizar las gestiones que en esta aparecen (Ley Orgánica 15/1999, de 13 de diciembre, de Protección de Datos de Carácter Personal). Puede ejercer sus derechos de acceso, rectificación, cancelación y oposición dirigiéndose a atencion.clientesth en tasacionesh.com<mailto:atencion.clientesth en tasacionesh.com>. La utilización de su dirección de correo electrónico por parte de nuestra empresa queda sujeta a las disposiciones de la Ley 34/2002, de Servicios de la Sociedad de la Información y el Comercio Electrónico. Si Vd. recibe comunicación comercial por nuestra parte y desea dejar de recibirla, rogamos nos lo comunique por vÃa electrónica a través de la dirección atencion.clientesth en tasacionesh.com <mailto:atencion.clientesth en tasacionesh.com> . De: Javier Marcuzzi [mailto:javier.ruben.marcuzzi en gmail.com] Enviado el: martes, 12 de abril de 2016 22:22 Para: Gilsanz, Jose Luis; Carlos J. Gil Bellosta ; Miguel Angel Rodriguez Muiños CC: r-help-es Asunto: RE: [R-es] Procesos paralelos Estimado Gilsanz Algo que puede ser, ¿tiene instalado tcltk en Windows? Yo ante un problema parecido lo solucioné realizando un contador, en mi caso conozco la cantidad de consultas, entonces simplemente ?imprimo? en pantalla 1 de 100, 2 de 100, etc. No es gráfico, pero R me informa dos cosas, que está trabajando y cuánto falta, feo a la vista pero muy simple. Javier Rubén Marcuzzi De: Gilsanz, Jose Luis<mailto:jluis.gilsanz en eu.jll.com> Enviado: martes, 12 de abril de 2016 10:40 Para: Carlos J. Gil Bellosta <mailto:cgb en datanalytics.com> ; Miguel Angel Rodriguez Muiños<mailto:miguel.angel.rodriguez.muinos en sergas.es> CC: r-help-es<mailto:r-help-es en r-project.org> Asunto: Re: [R-es] Procesos paralelos Miguel: Mil gracias por tu sugerencia de usar la barra de progreso tcltk , me funciona perfectamente y además la barra de progreso es más bonita ? Ahora me entra la curiosidad malsana de saber porque con la barra de windows no sale la barrra y con tcltk si que aparece. Carlos: No habia oido hablar de ese paquete pero en cuanto termine con los ETL que tengo pendientes voy a empollarme la web del paquete que me has enviado porque seguro que agiliza muchisimo todos estos procesos. Muchas gracias a los dos por la variedad y calidad de las soluciones José Luis Gilsanz Gómez EstadÃstica Departamento Técnico Entidades Financieras JLL Valoraciones S.A. (Jones Lang LaSalle España S.A.) Paseo de la Castellana 130 - 1ª; 28046 Madrid Tel: +34 91 454 96 94 Fax +34 91 541 42 64 jll.es SÃguenos en: Twitter I Linkedin I Youtube I Blog ?Piense en el medio ambiente antes de imprimir este e-mail Los datos personales que en esta comunicación aparecen, asà como los que nuestra empresa mantiene de Vd. y de su empresa, son tratados con la finalidad de mantener el contacto asà como realizar las gestiones que en esta aparecen (Ley Orgánica 15/1999, de 13 de diciembre, de Protección de Datos de Carácter Personal). Puede ejercer sus derechos de acceso, rectificación, cancelación y oposición dirigiéndose a atencion.clientesth en tasacionesh.com<mailto:atencion.clientesth en tasacionesh.com>. La utilización de su dirección de correo electrónico por parte de nuestra empresa queda sujeta a las disposiciones de la Ley 34/2002, de Servicios de la Sociedad de la Información y el Comercio Electrónico. Si Vd. recibe comunicación comercial por nuestra parte y desea dejar de recibirla, rogamos nos lo comunique por vÃa electrónica a través de la dirección atencion.clientesth en tasacionesh.com<mailto:atencion.clientesth en tasacionesh.com> .
-----Mensaje original-----
De: gilbellosta en gmail.com<mailto:gilbellosta en gmail.com> [mailto:gilbellosta en gmail.com] En nombre de
Carlos J. Gil Bellosta
Enviado el: martes, 12 de abril de 2016 14:37
Para: Miguel Angel Rodriguez Muiños
CC: Gilsanz, Jose Luis; r-help-es
Asunto: Re: [R-es] Procesos paralelos
Hola, ¿qué tal?
Si la base de datos de destino es SQL Server, ¿por qué no pruebas con la
función dbBulkCopy del paquete https://github.com/agstudy/rsqlserver?
DeberÃa poder cargar millones de registros en segundos. Al menos, en una
única transacción en lugar de múltiples como con sqlSave.
Un saludo,
Carlos J. Gil Bellosta
El dÃa 12 de abril de 2016, 11:55,
<miguel.angel.rodriguez.muinos en sergas.es<mailto:miguel.angel.rodriguez.muinos en sergas.es<mailto:miguel.angel.rodriguez.muinos en sergas.es%3cmailto:miguel.angel.rodriguez.muinos en sergas.es>>> escribió:
Hola José Luis.
Te da algún error? o simplemente no aparece la barra de progreso?
... y si, en vez de usar winProgressBar(), pruebas con la función
tkProgressBar() del paquete tcltk ¿?
Un saludo,
Miguel.
El 12/04/2016 a las 11:04, Gilsanz, Jose Luis escribió:
Hola:
Vuelvo a la carga con algo que resolv hace a os y que ahora me ha dejado
de funcionar y no consigo arreglar. A ver si alguien me sugiere alg n enfoque
o directamente la solucion.
Utilizo R en muchos procesos ETL y la cuesti n es que me encuentro con que
tengo que hacer inserts en un BBDD de SQL Server de varios miles (a veces
millones de registros) que mientras R las realiza parece que no est haciendo
nada.
La soluci n que consegu hacer en su momento fue paralelizar el proceso de
inserci n en dos procesos distintos usando el paquete snowfall.
-Un proceso se encargaba de la propia inserci n de los datos.
-El otro proceso mostraba una barra de progreso que se constru a
consultando la tabla (tab) donde se insertaban los registros (datos) para
monitorizar su proceso.
La subida al servidor es esta funci n:
subida <- function( datos, tab)
{
flush.console()
canal2 <- odbcDriverConnect( "case=nochange;
Driver=xxx; Server=xxx; Database=xxx; uid=xxx; pwd=xxx; wsid=xxx;")
sqlSave(canal2,datos,tablename= tab, rownames =
FALSE, append=TRUE, fast=TRUE )
close(canal2)
rm(canal2)
}
La barra de progreso se toma de esta funci n:
pb <-function( datos,tab){
##Creamos canal de conexion a BBDD
canal1 <- odbcDriverConnect( "case=nochange;
Driver=SQL Server; Server=xxx; Database=xxx; uid=xxx; pwd=xx;
wsid=ESMADN1003;;")
##Obtenemos conteos de registros##################
#Numero de registro que se van a cargar
asubir <- as.numeric(nrow(datos))
#Numero de registro que ya hay en la tabla
entabla <- as.numeric(sqlQuery(canal1,paste("SELECT
Count(*) ", " FROM ",tab, sep="")))
#Numero de registros cargados en el momento n
total <- as.numeric(0)
#Frecuenca de actualizacion de la barra
frec <- 0.1
##Creamos barra de progreso
barra <- winProgressBar(title="Subiendo datos a SQL ", label =
"Subido el: ", min= 0, max= 1,initial= 0, width = 800)
##Mientras los registros que quedan por subir sean inferiores a los
que actualmente hay en la tabla se muestra la barra
while ( entabla + asubir > total )
{
#Reconectamos
canal1 <-
odbcReConnect(canal1)
#Obtenemos registros actuales en la tabla (los que
habia + los que han subido hasta el momento)
total <-
as.numeric(sqlQuery(canal1,paste("SELECT Count(*) FROM ",tab,
sep="")))
#Calculamos porcentaje de registros subidos en el
momento
porcen <-
as.numeric((total - entabla) / asubir)
#Actualizamos barra de progreso
setWinProgressBar(barra, porcen,title="SUBIENDO DATOS A SQL", label
=paste("Subido el: ", round(porcen *100,0), "% de los datos. Quedan
por subir ",(entabla + asubir)-total, " registros de ", asubir, "." ,
sep=""))
#Actualizamos consola
flush.console()
Sys.sleep(frec)
}
close(barra)
}
Ahora estoy intentando usar el paquete parallel (en lugar de snowfall que
ya no me funciona) haciendo esto.
library(parallel)
library(RODBC)
##Creo un cluster con dos nodos
cl <-makeCluster(2)
##Exporto datos y funciones a los dos cluster
clusterExport(cl,varlist=c("pb","subida","datos","tab"))
##En el primer cluster hago la inserci n en el segundo la barra de
progreso
clusterApply(cl,subida(datos,tab),pb(datos,tab) )
La inserci n la realiza correctamente pero la barra de progreso no
aparece por ning n lado :( y en el monitor de procesos aparecen dos
Rscript.exe corriendo (uso Windows 7)
Si alguien quiere que le proporcione la funci n que constru usando snowfall
(y que ahora tampoco muestra la barra) se la puedo enviar para destriparla.
Muchas gracias
Un saludo
Jos Luis Gilsanz G mez
Estad stica
Departamento T cnico Entidades Financieras JLL Valoraciones S.A.
(Jones Lang LaSalle Espa a S.A.) Paseo de la Castellana 130 - 1 ;
28046 Madrid
Tel: +34 91 454 96 94
Fax +34 91 541 42 64
jll.es
S guenos en:
Linkedin<https://www.linkedin.com/profile/view?id=173156047&trk=nav_re
sponsive_tab_profile><https://www.linkedin.com/profile/view?id=1731560
47&trk=nav_responsive_tab_profile> I
w.y
outube.com/user/joneslanglasallesp> I
uebles.es/elblogdelosanillos/> PPiense en el medio ambiente antes de
imprimir este e-mail
Los datos personales que en esta comunicaci n aparecen, as como los que
nuestra empresa mantiene de Vd. y de su empresa, son tratados con la
finalidad de mantener el contacto as como realizar las gestiones que en esta
aparecen (Ley Org nica 15/1999, de 13 de diciembre, de Protecci n de Datos
de Car cter Personal).
Puede ejercer sus derechos de acceso, rectificaci n, cancelaci n y oposici n
dirigi ndose a
atencion.clientesth en tasacionesh.com<mailto:atencion.clientesth en tasacione<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacione%3cmailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com>>
sh.com><mailto:atencion.clientesth en tasacionesh.com><mailto:atencion.clie<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com<mailto:atencion.clie%3cmailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com>>
ntesth en tasacionesh.com<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com<mailto:ntesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com>>>.
La utilizaci n de su direcci n de correo electr nico por parte de nuestra
empresa queda sujeta a las disposiciones de la Ley 34/2002, de Servicios de la
Sociedad de la Informaci n y el Comercio Electr nico. Si Vd. recibe comunicaci
n comercial por nuestra parte y desea dejar de recibirla, rogamos nos lo
comunique por v a electr nica a trav s de la direcci n
atencion.clientesth en tasacionesh.com<mailto:atencion.clientesth en tasacione<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacione%3cmailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com>>
sh.com<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com>>
<mailto:atencion.clientesth en tasacionesh.com><mailto:atencion.clientesth@<mailto:atencion.clientesth en tasacionesh.com<mailto:atencion.clientesth@%3cmailto:atencion.clientesth en tasacionesh.com>>
tasacionesh.com<mailto:atencion.clientesth en tasacionesh.com>> .
JLL Valoraciones
Registration number: A-28/806222.
Registered Office: P de la Castellana, 130 - 1 ; 28046 Madrid
This e-mail is for the use of the intended recipient(s) only. If you
have received this e-mail in error, please notify the sender
immediately and then delete it. If you are not the intended recipient,
you must not use, disclose or distribute this e-mail without the
author's prior permission. We have taken precautions to minimise the
risk of transmitting software viruses, but we advise you to carry out
your own virus checks on any attachment to this message. We cannot
accept liability for any loss or damage caused by software viruses. If
you are the intended recipient and you do not wish to receive similar
electronic messages from us in future then please respond to the
sender to this effect
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org<mailto:R-help-es en r-project.org<mailto:R-help-es en r-project.org%3cmailto:R-help-es en r-project.org<mailto:R-help-es en r-project.org%3cmailto:R-help-es en r-project.org%3cmailto:R-help-es en r-project.org%3cmailto:R-help-es en r-project.org>>>
--
Miguel Ãngel RodrÃguez MuÃños
Asesoramento en Informática
Dirección Xeral de Saúde Pública
ConsellerÃa de Sanidade
Xunta de Galicia
________________________________
Nota: A información contida nesta mensaxe e os seus posibles documentos
adxuntos é privada e confidencial e está dirixida únicamente ó seu
destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe,
por favor elimÃnea. A distribución ou copia desta mensaxe non está
autorizada.
Nota: La información contenida en este mensaje y sus posibles
documentos adjuntos es privada y confidencial y está dirigida únicamente a
su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje,
por favor elimÃnelo. La distribución o copia de este mensaje no está
autorizada.
See more languages: http://www.sergas.es/aviso-confidencialidad
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org<mailto:R-help-es en r-project.org<mailto:R-help-es en r-project.org%3cmailto:R-help-es en r-project.org>>
_______________________________________________ R-help-es mailing list R-help-es en r-project.org<mailto:R-help-es en r-project.org> https://stat.ethz.ch/mailman/listinfo/r-help-es
Estimado José Luis Hay algunas librerÃas que lo instalan desde r (https://cran.r-project.org/web/packages/tcltk2/index.html). No estoy seguro pero creo que install.rcmdr lo instalarÃa. Sobre el contador que yo uso, al inicio yo no se la cantidad, porque esto depende de una consulta, pero no es importante, porque como hay partes que van dentro de un bucle, entonces dentro de este hay otro contador y puedo escribir algo en pantalla solamente cada un aumento de 100 o 1000 en este ultimo, al finalizar el bucle paso a lo siguiente, conozco que ese proceso fa finalizó y R continúa trabajando. Mi método es medio feo, tipo DOS antes del Windows, pero la información que puedo leer es a mi gusto, casi ilimitada. Javier Rubén Marcuzzi De: Gilsanz, Jose Luis Enviado: miércoles, 13 de abril de 2016 5:13 Para: Javier Marcuzzi; Carlos J. Gil Bellosta ; Miguel Angel Rodriguez Muiños CC: r-help-es Asunto: RE: [R-es] Procesos paralelos Hola Javier, Hasta donde yo sé no hay nada de Tcltk instalado en mi máquina, es más, he tenido que mirar en Wikipedia que era Tcltk porque suponÃa (de forma errónea) que era otro paquete más de R, y no un lenguaje de programación en sà mismo. En mi caso los procesos ETL son muy diversos y alimentan un DW con estadÃsticas procedentes de muy diversas fuentes, como a priori no conozco el número de registros a insertar me es muy útil tener monitorizado todo el proceso para saber si R está trabajando o existe algún tipo de corte o problema en el proceso. José Luis Gilsanz Gómez EstadÃstica Departamento Técnico Entidades Financieras JLL Valoraciones S.A. (Jones Lang LaSalle España S.A.) Paseo de la Castellana 130 - 1ª; 28046 Madrid Tel: +34 91 454 96 94 Fax +34 91 541 42 64 jll.es SÃguenos en: Twitter I Linkedin I Youtube I Blog ?Piense en el medio ambiente antes de imprimir este e-mail Los datos personales que en esta comunicación aparecen, asà como los que nuestra empresa mantiene de Vd. y de su empresa, son tratados con la finalidad de mantener el contacto asà como realizar las gestiones que en esta aparecen (Ley Orgánica 15/1999, de 13 de diciembre, de Protección de Datos de Carácter Personal). Puede ejercer sus derechos de acceso, rectificación, cancelación y oposición dirigiéndose a atencion.clientesth en tasacionesh.com. La utilización de su dirección de correo electrónico por parte de nuestra empresa queda sujeta a las disposiciones de la Ley 34/2002, de Servicios de la Sociedad de la Información y el Comercio Electrónico. Si Vd. recibe comunicación comercial por nuestra parte y desea dejar de recibirla, rogamos nos lo comunique por vÃa electrónica a través de la dirección atencion.clientesth en tasacionesh.com .  De: Javier Marcuzzi [mailto:javier.ruben.marcuzzi en gmail.com] Enviado el: martes, 12 de abril de 2016 22:22 Para: Gilsanz, Jose Luis; Carlos J. Gil Bellosta ; Miguel Angel Rodriguez Muiños CC: r-help-es Asunto: RE: [R-es] Procesos paralelos Estimado Gilsanz Algo que puede ser, ¿tiene instalado tcltk en Windows? Yo ante un problema parecido lo solucioné realizando un contador, en mi caso conozco la cantidad de consultas, entonces simplemente ?imprimo? en pantalla 1 de 100, 2 de 100, etc. No es gráfico, pero R me informa dos cosas, que está trabajando y cuánto falta, feo a la vista pero muy simple. Javier Rubén Marcuzzi De: Gilsanz, Jose Luis Enviado: martes, 12 de abril de 2016 10:40 Para: Carlos J. Gil Bellosta ; Miguel Angel Rodriguez Muiños CC: r-help-es Asunto: Re: [R-es] Procesos paralelos Miguel: Mil gracias por tu sugerencia de usar la barra de progreso tcltk , me funciona perfectamente y además la barra de progreso es más bonita ? Ahora me entra la curiosidad malsana de saber porque con la barra de windows no sale la barrra y con tcltk si que aparece. Carlos: No habia oido hablar de ese paquete pero en cuanto termine con los ETL que tengo pendientes voy a empollarme la web del paquete que me has enviado porque seguro que agiliza muchisimo todos estos procesos. Muchas gracias a los dos por la variedad y calidad de las soluciones José Luis Gilsanz Gómez EstadÃstica Departamento Técnico Entidades Financieras JLL Valoraciones S.A. (Jones Lang LaSalle España S.A.) Paseo de la Castellana 130 - 1ª; 28046 Madrid Tel: +34 91 454 96 94 Fax +34 91 541 42 64 jll.es SÃguenos en: Twitter I Linkedin I Youtube I Blog SPiense en el medio ambiente antes de imprimir este e-mail Los datos personales que en esta comunicación aparecen, asà como los que nuestra empresa mantiene de Vd. y de su empresa, son tratados con la finalidad de mantener el contacto asà como realizar las gestiones que en esta aparecen (Ley Orgánica 15/1999, de 13 de diciembre, de Protección de Datos de Carácter Personal). Puede ejercer sus derechos de acceso, rectificación, cancelación y oposición dirigiéndose a atencion.clientesth en tasacionesh.com. La utilización de su dirección de correo electrónico por parte de nuestra empresa queda sujeta a las disposiciones de la Ley 34/2002, de Servicios de la Sociedad de la Información y el Comercio Electrónico. Si Vd. recibe comunicación comercial por nuestra parte y desea dejar de recibirla, rogamos nos lo comunique por vÃa electrónica a través de la dirección atencion.clientesth en tasacionesh.com .
-----Mensaje original-----
De: gilbellosta en gmail.com [mailto:gilbellosta en gmail.com] En nombre de
Carlos J. Gil Bellosta
Enviado el: martes, 12 de abril de 2016 14:37
Para: Miguel Angel Rodriguez Muiños
CC: Gilsanz, Jose Luis; r-help-es
Asunto: Re: [R-es] Procesos paralelos
Hola, ¿qué tal?
Si la base de datos de destino es SQL Server, ¿por qué no pruebas con la
función dbBulkCopy del paquete https://github.com/agstudy/rsqlserver?
DeberÃa poder cargar millones de registros en segundos. Al menos, en una
única transacción en lugar de múltiples como con sqlSave.
Un saludo,
Carlos J. Gil Bellosta
El dÃa 12 de abril de 2016, 11:55,
<miguel.angel.rodriguez.muinos en sergas.es<mailto:miguel.angel.rodriguez.muinos en sergas.es>> escribió:
Hola José Luis.
Te da algún error? o simplemente no aparece la barra de progreso?
... y si, en vez de usar winProgressBar(), pruebas con la función
tkProgressBar() del paquete tcltk ¿?
Un saludo,
Miguel.
El 12/04/2016 a las 11:04, Gilsanz, Jose Luis escribió:
Hola:
Vuelvo a la carga con algo que resolv hace a os y que ahora me ha dejado
de funcionar y no consigo arreglar. A ver si alguien me sugiere alg n enfoque
o directamente la solucion.
Utilizo R en muchos procesos ETL y la cuesti n es que me encuentro con que
tengo que hacer inserts en un BBDD de SQL Server de varios miles (a veces
millones de registros) que mientras R las realiza parece que no est haciendo
nada.
La soluci n que consegu hacer en su momento fue paralelizar el proceso de
inserci n en dos procesos distintos usando el paquete snowfall.
-Un proceso se encargaba de la propia inserci n de los datos.
-El otro proceso mostraba una barra de progreso que se constru a
consultando la tabla (tab) donde se insertaban los registros (datos) para
monitorizar su proceso.
La subida al servidor es esta funci n:
subida <- function( datos, tab)
                               {
                                               flush.console()
                                               canal2 <- odbcDriverConnect( "case=nochange;
Driver=xxx; Server=xxx; Database=xxx; uid=xxx; pwd=xxx; wsid=xxx;")
                                               sqlSave(canal2,datos,tablename= tab, rownames =
FALSE, append=TRUE, fast=TRUE )
                                               close(canal2)
                                               rm(canal2)
                               }
La barra de progreso se toma de esta funci n:
pb <-function( datos,tab){
                ##Creamos canal de conexion a BBDD
                canal1 <- odbcDriverConnect( "case=nochange;
Driver=SQL Server; Server=xxx; Database=xxx; uid=xxx; pwd=xx;
wsid=ESMADN1003;;")
                ##Obtenemos conteos de registros##################
                #Numero de registro que se van a cargar
                asubir <- as.numeric(nrow(datos))
                #Numero de registro que ya hay en la tabla
                entabla <- as.numeric(sqlQuery(canal1,paste("SELECT
Count(*) ", " FROM ",tab, sep="")))
                #Numero de registros cargados en el momento n
                total <- as.numeric(0)
#Frecuenca de actualizacion de la barra
  frec <- 0.1
  ##Creamos barra de progreso
  barra <- winProgressBar(title="Subiendo datos a SQL ", label =
"Subido el:Â ", min= 0, max= 1,initial= 0, width = 800)
                ##Mientras los registros que quedan por subir sean inferiores a los
que actualmente hay en la tabla se muestra la barra
                while ( entabla + asubir > total )
                                 {
                                               #Reconectamos
                                               canal1 <-
odbcReConnect(canal1)
                                               #Obtenemos registros actuales en la tabla (los que
habia + los que han subido hasta el momento)
                                               total <-
as.numeric(sqlQuery(canal1,paste("SELECT Count(*) FROM ",tab,
sep="")))
                                               #Calculamos porcentaje de registros subidos en el
momento
                                               porcen <-
as.numeric((total - entabla) / asubir)
                                               #Actualizamos barra de progreso
setWinProgressBar(barra, porcen,title="SUBIENDO DATOS A SQL", label
=paste("Subido el:Â ", round(porcen *100,0), "% de los datos. Quedan
por subir ",(entabla + asubir)-total, " registros de ", asubir, "." ,
sep=""))
                                               #Actualizamos consola
                                               flush.console()
                                               Sys.sleep(frec)
                                 }
                close(barra)
}
Ahora estoy intentando usar el paquete parallel (en lugar de snowfall que
ya no me funciona) haciendo esto.
library(parallel)
library(RODBC)
##Creo un cluster con dos nodos
cl <-makeCluster(2)
##Exporto datos y funciones a los dos cluster
clusterExport(cl,varlist=c("pb","subida","datos","tab"))
##En el primer cluster hago la inserci n en el segundo la barra de
progreso
clusterApply(cl,subida(datos,tab),pb(datos,tab) )
La inserci n la realiza correctamente pero la barra de progreso no
aparece por ning n lado :( y en el monitor de procesos aparecen dos
Rscript.exe corriendo (uso Windows 7)
Si alguien quiere que le proporcione la funci n que constru usando snowfall
(y que ahora tampoco muestra la barra) se la puedo enviar para destriparla.
Muchas gracias
Un saludo
Jos Luis Gilsanz G mez
Estad stica
Departamento T cnico Entidades Financieras JLL Valoraciones S.A.
(Jones Lang LaSalle Espa a S.A.) Paseo de la Castellana 130 - 1 ;
28046 Madrid
Tel: +34 91 454 96 94
Fax +34 91 541 42 64
jll.es
S guenos en:
Linkedin<https://www.linkedin.com/profile/view?id=173156047&trk=nav_re
sponsive_tab_profile><https://www.linkedin.com/profile/view?id=1731560
47&trk=nav_responsive_tab_profile> I
w.y
outube.com/user/joneslanglasallesp> I
uebles.es/elblogdelosanillos/> PPiense en el medio ambiente antes de
imprimir este e-mail
Los datos personales que en esta comunicaci n aparecen, as como los que
nuestra empresa mantiene de Vd. y de su empresa, son tratados con la
finalidad de mantener el contacto as como realizar las gestiones que en esta
aparecen (Ley Org nica 15/1999, de 13 de diciembre, de Protecci n de Datos
de Car cter Personal).
Puede ejercer sus derechos de acceso, rectificaci n, cancelaci n y oposici n
dirigi ndose a
atencion.clientesth en tasacionesh.com<mailto:atencion.clientesth en tasacione<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com>
sh.com><mailto:atencion.clientesth en tasacionesh.com><mailto:atencion.clie<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com>
ntesth en tasacionesh.com<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com%3e%3cmailto:atencion.clientesth en tasacionesh.com>>.
La utilizaci n de su direcci n de correo electr nico por parte de nuestra
empresa queda sujeta a las disposiciones de la Ley 34/2002, de Servicios de la
Sociedad de la Informaci n y el Comercio Electr nico. Si Vd. recibe comunicaci
n comercial por nuestra parte y desea dejar de recibirla, rogamos nos lo
comunique por v a electr nica a trav s de la direcci n
atencion.clientesth en tasacionesh.com<mailto:atencion.clientesth en tasacione<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com>
sh.com<mailto:atencion.clientesth en tasacionesh.com%3cmailto:atencion.clientesth en tasacionesh.com>>
<mailto:atencion.clientesth en tasacionesh.com><mailto:atencion.clientesth@<mailto:atencion.clientesth en tasacionesh.com>
tasacionesh.com<mailto:atencion.clientesth en tasacionesh.com>> .
JLL Valoraciones
Registration number: A-28/806222.
Registered Office: PÂ de la Castellana, 130 - 1Â ; 28046 Madrid
This e-mail is for the use of the intended recipient(s) only. If you
have received this e-mail in error, please notify the sender
immediately and then delete it. If you are not the intended recipient,
you must not use, disclose or distribute this e-mail without the
author's prior permission. We have taken precautions to minimise the
risk of transmitting software viruses, but we advise you to carry out
your own virus checks on any attachment to this message. We cannot
accept liability for any loss or damage caused by software viruses. If
you are the intended recipient and you do not wish to receive similar
electronic messages from us in future then please respond to the
sender to this effect
        [[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org<mailto:R-help-es en r-project.org<mailto:R-help-es en r-project.org%3cmailto:R-help-es en r-project.org>>
--
Miguel Ãngel RodrÃguez MuÃños
Asesoramento en Informática
Dirección Xeral de Saúde Pública
ConsellerÃa de Sanidade
Xunta de Galicia
________________________________
Nota: A información contida nesta mensaxe e os seus posibles documentos
adxuntos é privada e confidencial e está dirixida únicamente ó seu
destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe,
por favor elimÃnea. A distribución ou copia desta mensaxe non está
autorizada.
Nota: La información contenida en este mensaje y sus posibles
documentos adjuntos es privada y confidencial y está dirigida únicamente a
su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje,
por favor elimÃnelo. La distribución o copia de este mensaje no está
autorizada.
See more languages: http://www.sergas.es/aviso-confidencialidad
        [[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org<mailto:R-help-es en r-project.org>
               [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es