IndexError: вывести индекс за пределы диапазона при использовании операции reduByKey в оболочке pyspark - PullRequest
0 голосов
/ 15 апреля 2019

Цель: найти самую высокую категорию видео из набора данных YouTube

Использование: Pyspark shell

Ожидается: категория с количеством раз, которое она появляется

Actual: Ошибка при использовании reduBykey в качестве IndexError: список индексов выходит за пределы диапазона

Я попробовал следующий код:

data="/Users/sk/Documents/GitRepository/Udemy_BigData_spark/1.txt"
input = sc.textFile(data)
results = input.map(lambda x: (x.split(‘\t')[3].encode("utf-8").replace('"', '').replace("'", '')))results.take(20)

Это дает следующие результаты:

['Comedy', 'Comedy', 'Entertainment', 'People & Blogs', 'People &
Blogs', 'Music', 'Comedy', 'People & Blogs', 'Entertainment',
'Entertainment', 'Entertainment', 'Entertainment', 'Entertainment',
'Entertainment', 'Entertainment', 'Entertainment', 'Entertainment',
'Entertainment', 'Entertainment', 'Entertainment']


results=results.map(lambda x: (x,1))

Это дает следующий результат:

[('Comedy', 1), ('Comedy', 1), ('Entertainment', 1), ('People & Blogs', 1), ('People & Blogs', 1), ('Music', 1), ('Comedy', 1), ('People & Blogs', 1), ('Entertainment', 1), ('Entertainment', 1), ('Entertainment', 1), ('Entertainment', 1), ('Entertainment', 1), ('Entertainment', 1), ('Entertainment', 1), ('Entertainment', 1), ('Entertainment', 1), ('Entertainment', 1), ('Entertainment', 1), ('Entertainment', 1)]


results=results.reduceByKey(lambda x, y: x + y)    
results.take(20)

Это дает огромную ошибку: (

Я хочу, чтобы он показал мне результат, как показано ниже:

(179049,Music), (127674,Entertainment), (87818,Comedy), (73293,Film &
Animation), (67329,Sports)

1 Ответ

0 голосов
/ 15 апреля 2019

Код, который я написал, написан на scala;

val ds = Seq("A", "B", "C", "A", "B", "C", "D", 
             "E", "F", "G", "A")
  .toDF.as[String].map(x => (x, 1))
ds.groupByKey(x => x._1)
  .reduceGroups((l, r) => (l._1, l._2+r._2))
  .show

Выходы:

+-----+------------------------------+
|value|ReduceAggregator(scala.Tuple2)|
+-----+------------------------------+
|    F|                        [F, 1]|
|    E|                        [E, 1]|
|    B|                        [B, 2]|
|    D|                        [D, 1]|
|    C|                        [C, 2]|
|    A|                        [A, 3]|
|    G|                        [G, 1]|
+-----+------------------------------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...