Как вернуть разные наборы в PySpark RDD? - PullRequest
2 голосов
/ 23 мая 2019

У меня есть RDD с другим набором значений, и я хочу вернуть все отдельные наборы из исходного RDD. Есть ли какой-нибудь ключевой термин, например, отличный?

example = sc.parallelize([{1}, {2}, {3}, {1}])
example.collect()

Это выводит:

[{1}, {2}, {3}, {1}]

Я пытался example.distinct().collect(), и я ожидал ответа на СДР с различными наборами:

[{1}, {2}, {3}]  # expected result

Есть ли способ сделать это?

1 Ответ

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

Преобразовать в frozenset, потому что их можно хэшировать.Затем вы можете позвонить distinct как обычно:

example.map(frozenset).distinct().map(set).collect()
# [{1}, {2}, {3}]

Как подсказывает pault, вы также можете преобразовать наборы в tuple перед удалением дубликатов.

...