Je suis actuellement confronté à une erreur mentionnée ci-dessous qui est liée à la coercition de valeurs NULL dans une trame de données . L'ensemble de données contient des valeurs nulles, mais j'ai essayé les deux fonctions is.na() et is.null() pour remplacer les valeurs nulles par quelque chose d'autre. Les données sont stockées sur hdfs et sont stockées dans un format pig.hive. J'ai également joint le code ci-dessous. Le code fonctionne bien si je supprime v [, 25] de la clé.Erreur dans as (x, class (k)): pas de méthode ou par défaut pour contraindre "NULL" à "data.frame"
code:
AM = c("AN");
UK = c("PP");
sample.map <- function(k,v){
key <- data.frame(acc = v[!which(is.na(v[,1],1],
year = substr(v[!which(is.na(v[,1]),2],1,4),
month = substr(v[!which(is.na(v[,1]),2],5,6))
value <- data.frame(v[,3],count=1)
keyval(key,value)
}
sample.reduce <- function(key,v){
AT <- sum(v[which(v[,1] %in% AM=="TRUE"),2])
UnknownT <- sum(v[which(v[,1] %in% UK=="TRUE"),2])
Total <- AT + UnknownT
d <- data.frame(AT,UnknownT,Total)
keyval(key,d)
}
out <- mapreduce(input ="/user/hduser/input",
output = "/user/hduser/output",
input.format = make.input.format("pig.hive", sep = "\u0001")
output.format = make.output.format("csv", sep = ","),
map= sample.map)
reduce = sample.reduce)
Erreur:
Warning in asMethod(object) : NAs introduced by coercion
Warning in split.default(1:rmr.length(y), unique(ind), drop = TRUE) : data length is not a multiple of split variable
Warning in rmr.split(x, x, FALSE, keep.rownames = FALSE) : number of items to replace is not a multiple of replacement length Warning in split.default(1:rmr.length(y), unique(ind), drop = TRUE) :
data length is not a multiple of split variable
Warning in rmr.split(v, ind, lossy = lossy, keep.rownames = TRUE) : number of items to replace is not a multiple of replacement length
Error in as(x, class(k)) :
no method or default for coercing “NULL” to “data.frame”
Calls: <Anonymous> ... apply.reduce -> c.keyval -> reduce.keyval -> lapply -> FUN -> as No traceback available
MISE À JOUR J'ai ajouté les données d'échantillon et édité le code ci-dessus. J'espère que cela t'aides!
données Exemple:
NULL,"2014-03-14","PP"
345689202,"2014-03-14","AN"
234539390,"2014-03-14","PP"
123125444,"2014-03-14","AN"
NULL,"2014-03-14","AN"
901828393,"2014-03-14","AN"
Ceci n'est pas reproductible. S'il vous plaît, faites-le. –
Salut Roman, Est-ce que ça aide? Je voulais aussi mentionner que les données sont stockées sur hdfs et cet instantané est anonymisé. Mais ça ressemble à quelque chose comme ça. –