Traitement de données à grande échelle en R
Simon Urbanek
Member of R-Core, Lead Inventive Scientist, AT&T Labs Research
iotools est à la base de hmr, qui permet de traiter des données sur l'infrastructure Apache Hadoop# Utilisez chunk.apply pour lire des blocs de lignes depuis foo.csv chunk_col_sums <- chunk.apply("foo.csv",# Fonction pour traiter chaque bloc function(chunk) { # Convertir le bloc en matrice m <- mstrsplit(chunk, type = "numeric", sep = ",") # Retourner les sommes par colonne colSums(m) }, # Taille maximale d'un bloc en octets CH.MAX.SIZE = 1e5)# Obtenir la somme totale colSums(chunk_col_sums)
# Utilisez chunk.apply pour lire des blocs de lignes depuis foo.csv
chunk_col_sums <- chunk.apply("foo.csv",
# Fonction pour traiter chaque bloc
function(chunk) {
# Convertir le bloc en data frame
d <- dstrsplit(chunk, col_types = rep("numeric", 3), sep = ",")
# Retourner les sommes par colonne
colSums(d)
},
# Taille maximale d'un bloc en octets
CH.MAX.SIZE = 1e5)
# Obtenir la somme totale
colSums(chunk_col_sums)
# Utilisez chunk.apply pour lire des blocs de lignes depuis foo.csv
chunk_col_sums <- chunk.apply("foo.csv",
# Fonction pour traiter chaque bloc
function(chunk) {
# Convertir le bloc en data frame
d <- dstrsplit(chunk, col_types = rep("numeric", 3), sep = ",")
colSums(d)
},
# 2 processeurs lisent et traitent les données
CH.PARALLEL = 2)
# Obtenir la somme totale
colSums(chunk_col_sums)
Traitement de données à grande échelle en R