2017-03-29 4 views
2

J'essaie l'opération simple de lier deux dataframes différentes (avec le même nombre de lignes - et les lignes correspondent) dans sparklyR.Existe-t-il un équivalent de cbind() ou bind_cols() dans sparklyr?

Par exemple:

library(sparklyr) 
library(dplyr) 

sc <- spark_connect(master = "local[*]") 
iris_tbl <- copy_to(sc, iris, name="iris", overwrite=TRUE) 

#check column names 
colnames(iris_tbl) 

#subset iris into two df's 
subdf <- iris_tbl %>% 
    select(Sepal_Length,Sepal_Width) 

subdf1 <- iris_tbl %>% 
    select(Petal_length,Petal_Width,Species) 

#try to bind back together 
dfCombine <- bind_cols(subdf,subdf1) 

Le message d'erreur que je reçois:

#Error 
Error in cbind_all(x) : basic_string::resize 

J'ai essayé combine(), cbind_all, cbind() et c(). Aucun ne travaille.

+0

Avez-vous essayé 'union_all'? Voir https://github.com/rstudio/sparklyr/issues/76 – JanLauGe

+0

'union_all' sert à lier deux dataframes avec exactement les mêmes colonnes (c'est-à-dire, c'est comme' rbind' et est similaire à 'UNION' dans SQL.) – schristel

+1

Oups, désolé, dans ce cas, le partitionnement des données ne semble pas très satisfaisant. Vous avez trouvé une discussion concernant 'bind_cols' ici: https://github.com/rstudio/sparklyr/issues/556 – JanLauGe

Répondre

1

Essayez d'utiliser

sub2 <- sdf_bind_row(subdf, subdf1) 
2

Il est trop tard, je l'espère que ce sera bon pour les autres.

Pour lier deux dataframes différents (le même que R cbind), nous pouvons utiliser sdf_bind_cols (Sparklyr Reference)

Code pour le problème ci-dessus:

sdf_bind_cols(subdf, subdf1)