【发布时间】:2021-06-28 08:08:03
【问题描述】:
我有这个要过滤的数据集:
它包含的唯一值如下:
user_unique <- movie_rating %>%
select(userId) %>% distinct() %>% count() %>% collect() %>%
unlist %>% as.vector
movie_unique <- movie_rating %>%
select(movieId) %>% distinct() %>% count() %>% collect() %>%
unlist %>% as.vector
user_unique_vector <- movie_rating %>%
select(userId) %>% distinct() %>% collect() %>%
unlist %>% as.vector
movie_unique_vector <- movie_rating %>%
select(movieId) %>% distinct() %>% collect() %>%
unlist %>% as.vector
然后我想过滤整个 DF,例如前 50 个现有的电影 ID
movie_rating %>%
filter(movieId %in% c(movie_unique_vector[1:50]))
但它返回意外错误:
Error: org.apache.spark.sql.catalyst.parser.ParseException:
no viable alternative at input '(`movieId` IN CASE'(line 3, pos 20)
== SQL ==
SELECT *
FROM `movie_rating`
WHERE (`movieId` IN CASE WHEN ((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50))
THEN ((110, 46850, 147, 46967, 858, 47629, 1221, 48061, 1246, 48516, 1968, 48738, 2762, 48783, 2918, 49530, 2959, 50068, 4226, 50872, 4878, 51540, 5577, 53972, 33794, 54272, 54503,
如何过滤?
编辑:如果有人对 DF 来源感兴趣,这里是:https://gofile.io/d/6RQvc1
【问题讨论】:
-
您能根据您想要过滤的标准多解释一下吗?
-
@Anoushiaravan R 所以,在这个电影评级数据集中,我想过滤一些唯一的movieId子集,我可以选择哪部电影,这样我就可以得到一个包含以下示例的较小数据框小规模观看电影评分的现有用户