Это связано с тем, что синтаксис среза может обрабатывать случай, когда длина списка меньше длины среза.
Например:
my_list = [1]
print(my_list[:3])
#[1]
Однако индексирование не такпрощение:
print(my_list[1])
IndexErrorTraceback (most recent call last)
<ipython-input-2-f6bea31a1a9e> in <module>()
----> 1 print(my_list[1])
IndexError: list index out of range
Где-то в вашем rdd
есть строка, в которой длина ключей меньше 2.
Возможно, вы захотите сначала отфильтровать:
r_parsed = r_parsed.filter(lambda x: len(x.keys()) > 1).map(lambda x: x.keys()[1])
Или встроить логику в функцию карты:
r_parsed = r_parsed.map(lambda x: x.keys()[1] if len(x.keys()) > 1 else None)