Я пытаюсь найти всех упомянутых людей внутри твитов. Для этого мне нужно отфильтровать слова, которым предшествует '@
' внутри твитов.
Я использую Java 8 с Spark 2.4.3.
Во-первых, я загружаю свой JSON-файл как RDD[Tweet]
(в упражнении специально указывается работа с RDD, а не с DataFrame).
Tweet - это класс case следующим образом:
case class Tweet (
id : String,
user : String,
userName : String,
text : String,
place : String,
country : String,
lang : String
)
Далее я создаю пары (пользователь, твиты) и разделяю слова в твиттах по "":
val tweets = loadData
val persons = tweets.map(row => (row.user, Seq(row.text.split(" ").mkString(","))))
Затем я попытался flatMap
все и перебрать все элементы, чтобы найти "@", но у меня ничего не получилось.
Я ожидаю, что результаты будут следующими:
(user1, Seq(@michael, @jean, @paul, @charles))
(user2, Seq(@kol, @louis))