SparkR Kolumna zapewnia long list of useful methods tym isNull
i 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
Proszę pamiętać, że nie ma różnicy między NA
i NaN
w SparkR.
Jeśli wolisz operacje na całej ramki danych jest zbiorem NA functions tym fillna
i 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
Oba mogą być dostosowane do rozważenia tylko pewnego podzbioru kolumn (cols
), a dropna
ma jedne dodatkowe użyteczne parametry. Na przykład można określić minimalną liczbę NOT NULL kolumn:
> 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
To wymagałoby odrębnego kodu dla różnych typów i będzie całkowicie niepowodzeniem z logicznych: 'df <- createDataFrame (SqlContext, data.frame (X = C (FAŁSZ , NA, TRUE))); df $ chx <- cast (df $ x, "string"); df%>% head() ' – zero323
Problem polega na tym, że wpis jest pusty. Podam przykład: ID = 1 2 3. AGE = 21 EMPTY 20. Tak więc 2. w tych danych jest pusta, ale w sparkR nie ma "wartości" NAN, NA lub NULL. Chodzi o to, żeby ten pusty wpis był wartością? –
Czy możesz podać przykład inicjalizacji? Aby zrozumieć, czy masz dane.frame (ID = c (1,2,3), AGE = c (21, "EMPTY", 20)) lub data.frame (ID = c (1,2,3), AGE = c (21,, 20)) lub jeszcze coś innego. –