если еще в функции карты в Scala - PullRequest
0 голосов
/ 17 мая 2019

Я новичок в Scala и Spark, я попробовал приведенный ниже код, но он не работает.Может кто-нибудь помочь мне (в Scala только не Data-frames) решить это.После этого мне нужно сделать еще несколько преобразований

Код:

val file = sc.textFile("winners.csv")
file.map(_.split(",")).map{x=>if(x(0)==x(2)) x(1) else if(x(1)==x(2)) x(0), x(2)}

Ввод : Team_1, Team_2, Победитель

Team_A, Team_B, Team_B

Team_C, Team_D, Team_C

Team_B, Team_C, Team_B

Team_A, Team_D, Team_A

Team_D, Team_B, Галстук

Выход :

Проигравший, Победитель

Team_A, Team_B

Team_D, Team_C

Team_C, Team_B

Team_D, Team_A

Связанный матч не требуется

Ответы [ 2 ]

2 голосов
/ 17 мая 2019

If грязные, используйте совпадение, когда это возможно:

   file.map(_.split(",")).collect {
      case Array(a, b, c) if a == c => s"$b,$c"
      case Array(a, b, c) if b == c => s"$a,$c"
   }
2 голосов
/ 17 мая 2019
// Assuming `textFile` reads the lines to a Seq[String]
val file = sc.textFile("winners.csv")
file
  .tail
  .map(_.split(","))
  .filter(_(2) != "Tied")
  .map(x => if (x(0) == x(2)) s"${x(1)},${x(0)}" else s"${x(0)},${x(1)}")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...