Узнайте положение строки в файле с помощью искры - PullRequest
0 голосов
/ 20 июня 2020

У меня есть последовательность, как показано ниже:

 val data = Seq("banagalore",
    "Delhi.","","","","Mubmai","Kolkata","Jammu$Kashmir")
  val rddData = ss.sparkContext.parallelize(data,3)
  val output = rddData.flatMap(_.split(" "))

Итак, мое требование - напечатать нижний O / P 1. (слово, позиция слова в последовательности, количество символов в последовательности)

Eg:For Mumbai it will print("Mumbai",5,6)

5 = Позиция слова Мумбаи в Последовательности 6 = Количество символов в слове «Мумбаи»

Also,

    O/p 2:Also I have to find out below:

        (word,Position of the word in the  sequence, Word with Maximum elements)
        (word,Position of the word in the  sequence,  Word with Minimum  characters

1 Ответ

0 голосов
/ 21 июня 2020

Вы можете использовать метод zipWithIndex, который задает позицию элемента в RDD. Вы можете применить фильтр к тому, который вам нужен после установки zipWithIndex, и вы получите то, что хотите

 val data = Seq("banagalore",
    "Delhi.","","","","Mubmai","Kolkata","Jammu$Kashmir")
  val rddData = spark.sparkContext.parallelize(data,3)

val a = rddData.zipWithIndex.map(a => (a._1, a._2, a._1.length())).filter(v => v._1 == "Mubmai").take(2)

println(a(0))

Результат будет

(Mubmai,5,6)

Я использую take (2 ), чтобы захватить первые две строки RDD, но поскольку есть только одна (как я отфильтровал на Mubmai), она печатает только одну (поэтому я делаю println (a (0)).

Hope это помогает

...