Сохраняет ли dask.bag.from_sequence порядок? - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь определить, сохраняет ли dask.bag порядок при создании экземпляра с использованием функции from_sequence.

Я вижу из других вопросов, что порядок для bag (например, Dask Bag read_text () line order ) не гарантирован, но мне не понятно почему.
Означает ли это, что «сейчас это обычно сохраняется, скажем, для списков, но нам, возможно, придется изменить это из-за чего-то во внутренних органах позже»?

Я выполнил простой тест, приведенный ниже, в дополнение к тестированию моей сложной структуры данных. В обоих случаях порядок, по-видимому, сохраняется. Просто не уверен, нужно ли мне делать больше, например, использовать zip, чтобы получить список кортежей формы (индекс, объект) и сделать из этого свой bag, чтобы я мог отсортировать по индексу после применения compute.

from dask import bag as db
b = db.from_sequence([1,2,3,4,5])
sqr = lambda i: i**2
list(b.map(sqr))
[1, 4, 9, 16, 25]

Ожидаемый результат:

list(b.map(sqr)) == [i**2 for i in [1,2,3,4,5]]

возвращает True

1 Ответ

1 голос
/ 17 мая 2019

Ответ в связанном ответе кажется мне достаточно ясным: да, порядок сохраняется, но это не гарантируется в будущем.Я ожидаю, что from_sequence будет одним из наиболее вероятных способов упорядочения при передаче чего-либо с присущим упорядочением (в отличие от произвольного доступа в файле или наборе файлов).Вы можете рассчитывать на каждый предмет, который обрабатывается один раз.Конечно, если у вас есть разделы и параллельная обработка, вы не можете быть уверены , когда каждый элемент фактически обрабатывается.

...