У меня есть текстовый файл с разделителями вкладок. Я просто извлекаю ключ на основе конкатенации элементов массива keyBy(_(6).trim() + "pr" + _(0))
. Мой вопрос заключается в том, как я могу сделать его обобщенным на основе значения индекса, разделенного запятой. Например: я хочу передать индекс с разделителями-запятыми (6,0)
с разделителем pr
, и он даст конкатенационный ключ.Динамический генератор ключей Spark RDD
val x = rawinput.map(_.split("\t"))
.keyBy(_(6).trim() + "pr" + _(0)) // extract key
.flatMap{ case (k, arr) => arr.take(7).zipWithIndex.map((k, _)) }
Спасибо @Tzach. Предположим, что у нас есть несколько разделителей, для Ex: 'keyBy (_ (6) .trim() +" pr "+ _ (0) +" pm "+ _ (0) +" pq "+ _ (1))' then как мы можем справиться с этой ситуацией? – Souvik
Вы можете указать _tuples_ для представления индекса и разделителя, например: 'val indices = Seq ((6," pr "), (0," pm "), (1," "))', а затем в ' keyBy': 'arr => indices.map {case (i, d) => arr (i) + d} .mkString()' –
Вы гений @Tzach ... Спасибо за вашу помощь. – Souvik