SparkR Colonna offre un long list of useful methods compresi isNull
e isNotNull
:
> people_local <- data.frame(Id=1:4, Age=c(21, 18, 30, NA))
> people <- createDataFrame(sqlContext, people_local)
> head(people)
Id Age
1 1 21
2 2 18
3 3 NA
> filter(people, isNotNull(people$Age)) %>% head()
Id Age
1 1 21
2 2 18
3 3 30
> filter(people, isNull(people$Age)) %>% head()
Id Age
1 4 NA
Si prega di tenere presente che non v'è alcuna distinzione tra NA
e NaN
in SparkR.
Se preferite le operazioni su un intero frame di dati v'è un insieme di NA functions compresi fillna
e dropna
:
> fillna(people, 99) %>% head()
Id Age
1 1 21
2 2 18
3 3 30
4 4 99
> dropna(people) %>% head()
Id Age
1 1 21
2 2 18
3 3 30
Entrambi possono essere regolati a prendere in considerazione solo un sottoinsieme di colonne (cols
), e dropna
ha qualche ulteriori parametri utili. Per esempio è possibile specificare il numero minimo di colonne non nulle:
> people_with_names_local <- data.frame(
Id=1:4, Age=c(21, 18, 30, NA), Name=c("Alice", NA, "Bob", NA))
> people_with_names <- createDataFrame(sqlContext, people_with_names_local)
> people_with_names %>% head()
Id Age Name
1 1 21 Alice
2 2 18 <NA>
3 3 30 Bob
4 4 NA <NA>
> dropna(people_with_names, minNonNulls=2) %>% head()
Id Age Name
1 1 21 Alice
2 2 18 <NA>
3 3 30 Bob
Richiederebbe codice separato per i diversi tipi e fallirà completamente con booleani: 'df <- createDataFrame (SqlContext, data.frame (x = c (FALSE , NA, VERO))); df $ chx <- cast (df $ x, "stringa"); df%>% head() ' – zero323
Bene, il problema è che la voce è vuota. Lasciatemi fare un esempio: ID = 1 2 3. AGE = 21 EMPTY 20. Quindi enry 2th in questo dato è vuoto ma in sparkR non ha il 'valore' NAN, NA o NULL. L'idea è forse quella di dare un valore a questa voce vuota? –
Puoi dare un esempio di inizializzazione? Giusto per capire se hai data.frame (ID = c (1,2,3), AGE = c (21, "EMPTY", 20)) o data.frame (ID = c (1,2,3), AGE = c (21,, 20)) o ancora qualcos'altro. –