Вам потребуется выполнить flatMap для вашего RDD, чтобы преобразовать его из RDD списков строк в RDD строк. Затем вы можете использовать метод distinct()
для возврата только уникальных строк.
Создать данные
all_keys = [['category', 'ser_id', 'appname', 'timestamp', 'label', 'ser_token', 'appver', 'action'],
['category', 'ser_id', 'appname', 'timestamp', 'vale', 'label', 'ser_token', 'appver', 'action', 'type'],
['category', 'ser_id', 'appname', 'timestamp', 'vale', 'label', 'ser_token', 'appver', 'type' ]]
rdd = sc.parallelize(all_keys)
Определите функцию flatMap
def explode(row):
for k in row:
yield k
Плоская карта, получить отдельные элементы, собрать
rdd.flatMap(explode).distinct().collect()
Полученные результаты
['category', 'ser_id', 'type', 'action', 'timestamp', 'ser_token', 'appver', 'vale', 'label', 'appname']
23.06.2016