Я изучаю Spark / scala, и мне нужно отфильтровать RDD по указанному c полю в столбце, в данном случае user
.
Я хочу вернуть RDD с пользователями ["Joe","Plank","Willy"]
, но не может понять, как
Это мой RDD:
2020-03-01T00:00:05Z my.local5.url {"request_method":"GET","request_length":281,"user":"Joe"}
2020-03-01T00:00:05Z my.local2.url {"request_method":"GET","request_length":281,"user":"Plank"}
2020-03-01T00:00:05Z my.local2.url {"request_method":"GET","request_length":281,"user":"Willy"}
2020-03-01T00:00:05Z my.local6.url {"request_method":"GET","request_length":281,"user":"Plank"}
2020-03-01T00:00:05Z my.local2.url {"request_method":"GET","request_length":281,"user":"Plank"}
2020-03-01T00:00:05Z my.local2.url {"request_method":"GET","request_length":281,"user":"Tracy"}
2020-03-01T00:00:05Z my.local6.url {"request_method":"GET","request_length":281,"user":"Roger"}
Ожидаемый результат:
2020-03-01T00:00:05Z my.local5.url {"request_method":"GET","request_length":281,"user":"Joe"}
2020-03-01T00:00:05Z my.local2.url {"request_method":"GET","request_length":281,"user":"Plank"}
2020-03-01T00:00:05Z my.local2.url {"request_method":"GET","request_length":281,"user":"Willy"}
2020-03-01T00:00:05Z my.local6.url {"request_method":"GET","request_length":281,"user":"Plank"}
2020-03-01T00:00:05Z my.local2.url {"request_method":"GET","request_length":281,"user":"Plank"}
I ' мы извлекаем rdd, используя искру, примерно так (псевдокод):
val sparkConf = new SparkConf().setAppName("MyApp")
master.foreach(sparkConf.setMaster)
val sc = new SparkContext(sparkConf)
val rdd = sc.textFile(inputDir)
rdd.filter(_.contains("\"user\":\"THE_ARRAY_OF_NAMES_"))