Проблема в картографических данных от class OldCompanyMovie(ocm : List[(company:String, movie:String, actor:String)])
до List[CompanyMovie(company:String, movies: List[Movies(movie:String, actors : List[actor:String])])]
Описание: у актера в том же фильме должен быть список актеров в фильме типа class Movies(movie: String, actors: List[actor:String])
то же самое со списком актера, фильм должен быть списком фильмов в компании, как CompanyMovie(company: String, movies : List[movie:Movies]))
в целом должно быть List[CompanyMovie(company:String, Movies(mv : List[movie:String, List[actor:String]]))]
* Обновление Я пытался получить запасдня, так что ничего плохого, результат близок, но может быть плохая производительность
val companies: List[Company] = oldWorldMovieList.map { item =>
val moviesOfeachCompany: List[Option[Pattern]] = oldWorldMovieList.map { oldWML =>
if (item.company == oldWML.company) {
val actorsOfeachMovie: List[Option[String]] = oldWorldMovieList.map { oldWML2 =>
if (item.movie == oldWML2.movie) {
Some(oldWML2.actor)
} else None
}.distinct
Some(Pattern(item.movie, actorsOfeachMovie))
} else None
}.distinct
Company(item.company, moviesOfeachCompany)
}.distinct
val worldMovies: WorldMovies = WorldMovies(companies)
пс.Я не могу изменить шаблон исходных данных.
если это Json Это будет так List[String, String, String]
[{"company":"Marvel","movie":"Avengers","actor":"ROBERT DOWNEY JR."},{"company":"Marvel","movie":"Avengers","actor":"CHRIS EVANS"},{"company":"Marvel","movie":"Avengers","actor":"MARK RUFFALO"},{"movie":"Marvel","movie":"Guardian of the galaxy","actor":"KAREN GILLAN"},{"company":"Marvel","movie":"Guardian of the galaxy","actor":"ZOE SALDANA"},{"company":"dc","movie":"Batman","actor":"CHRISTIAN BALE"},{"company":"dc","movie":"Batman","actor":"CHRISTOPHER REEVE"}]
После преобразования это должно быть вот это
[{"company": "Marvel", "movies" : [{"movie": "Avengers", "actor": ["ROBERT DOWNEY JR.", "CHRIS EVANS", "MARK RUFFALO"]},{"movie": "Guardian of the galaxy", "actor": ["KAREN GILLAN", "ZOE SALDANA"]}]},{"company": "dc","movies" : [{"movie": "Batman", "actor": ["CHRISTOPHER REEVE", "CHRISTIAN BALE"]}]}]