У меня вопрос о отображении массива в scala. У меня есть следующий массив:scala-spark Матричное отображение
Array[(scala.collection.immutable.Set[String], com.trends.City, com.trends.State)]
В принципе, я хочу, чтобы отобразить массив таким образом, что каждая строка в наборе будет иметь com.trends.City и государство прилагается к нему. Результат должен выглядеть примерно так:
Array[(String, com.trends.City, com.trends.State)]
который, как flatMap, но я хочу com.trends быть там.
Я мог бы также преобразовать массив в RDD, если необходимо, и использовать flatMapValues, но я заинтересован в эффективности, может кто-нибудь сказать мне, что является лучшим способом?
Я не думаю, что эта версия работает. Он не ищет, принадлежит ли строка к набору, поэтому он всегда будет давать результат, даже если он не должен. –
@ CarlosVilchez может объяснить, что означает u? – abalcerek
'Array [(scala.collection.immutable.Set [String], com.trends.City, com.trends.State)]' имеет Set [String], который определяет, должна ли String быть связана с этим городом и государством , В вашем коде вы повторяете список строк в наборе, а затем создаете каждый возможный результат. Я знаю, что это звучит сложно, но неся со мной. Ничего лучше, чем пример для этой ситуации. Предположим, что у нас есть эти данные: 'val cities = Array (" a "," b "," c ") val cityArray = Array ((Set (" x "," y ")," b "," c "), (Set (" z ")," b2 "," c2 "))' Результат: 'Array ((x, b, c), (y, b, c), (z, b2, c2)) ' –