2015-11-03 5 views
0

Я использую декартово преобразование в Scala Spark, и у меня есть набор из 6 координат, как следует.Странное поведение декартовых преобразований в искристе Scala

coord.collect 
res114: Array[(Float, Float, Float)] = Array(
    (43.13,-67.331,-18.137),  
    (63.914,-67.078,-16.894), 
    (23.13,-60.341,-28.117),  
    (53.914,-67.028,-16.824), 
    (63.11,-69.311,-18.117),  
    (61.924,-67.068,-16.874) 
) 

coord.cartesian.coord дает мне следующий результат.

coord.cartesian(coord).collect 
res118: Array[((Float, Float, Float), (Float, Float, Float))] = Array(
    ((43.13,-67.331,-18.137),(43.13,-67.331,-18.137)), 
    ((43.13,-67.331,-18.137),(63.914,-67.078,-16.894)), 
    ((43.13,-67.331,-18.137),(23.13,-60.341,-28.117)), 
    ((43.13,-67.331,-18.137),(53.914,-67.028,-16.824)), 
    ((43.13,-67.331,-18.137),(63.11,-69.311,-18.117)), 
    ((63.914,-67.078,-16.894),(43.13,-67.331,-18.137)), 
    ((63.914,-67.078,-16.894),(63.914,-67.078,-16.894)), 
    ((63.914,-67.078,-16.894),(23.13,-60.341,-28.117)), ((... 

Почему шестой элемент нет ((43,13, -67,331, -18,137), (61,924, -67,068, -16,874))?

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

+3

В случае любой операции, требующей перетасовки и не обеспечивающей явный порядок (например, сортировку), порядок выходных значений не гарантируется и может варьироваться от прогона до запуска. – zero323

+0

Быстрый вопрос о последующем вопросе, есть ли разумный способ обеспечить соблюдение порядка в этом случае? –

ответ

1

Заказ не имеет значения, так как нет гарантии заказа (когда дело доходит до перетасовки).

Пока вы получаете правильный набор из 36 результатов в целом (без уважения к заказу), все в порядке.

+0

Спасибо zero323, Мартин! –

Смежные вопросы