В настоящее время у меня есть RDD с массивом, в котором хранится пара значений ключа, где ключ является двумерными индексами массива, а значение - это число в этом месте. Например, [((0,0), 1), ((0,1), 2), ((1,0), 3), ((1,1), 4)] Я хочу добавить значения каждого ключа с окружающими значениями. Что касается моего предыдущего примера, я хочу добавить 1,2,3 и поместить его в пятно ключевого значения (0,0). Как мне это сделать?Pyspark Array Key, Value
0
A
ответ
0
Я хотел бы предложить вам следующее:
Определить функцию, которая, учитывая пару (I, J), возвращает список с парами, соответствующие позиции окружающих (I, J), плюс входная пара (i, j). Например, скажем, функция называется
surrounding_pairs(pair)
. Затем:surrounding_pairs((0,0)) = [ (0,0), (0,1), (1,0) ] surrounding_pairs((2,3)) = [ (2,3), (2,2), (2,4), (1,3), (3,3) ]
Конечно, вам нужно быть осторожным и возвращать только действительные позиции.
Используйте
flatMap
на вашем РДУ следующим образом:MyRDD = MyRDD.flatMap(lambda (pos, v): [(p, v) for p in surrounding_pairs(pos)])
Это сопоставит RDD от
[((0,0),1),((0,1),2),((1,0),3),((1,1),4)]
к[((0,0),1),((0,1),1),((1,0),1), ((0,1),2),((0,0),2),((1,1),2), ((1,0),3),((0,0),3),((1,1),3), ((1,1),4),((1,0),4),((0,1),4)]
Таким образом, значение в каждой позиции будет "скопировано" на соседние позиции.
Наконец, просто использовать
reduceByKey
добавить соответствующие значения в каждой позиции:from operator import add MyRDD = MyRDD.reduceByKey(add)
Я надеюсь, что это имеет смысл.
Смежные вопросы
- 1. JavaScript Array Key & Value
- 2. Array variable key/value PHP
- 3. PHP key-value array push
- 4. PHP: Object Array - Заменить Key и Value
- 5. Unset Not Clearing Array Key/Value
- 6. javascript object key и value as array
- 7. php search array key и get value
- 8. PHP sort array by key 'value'
- 9. Рамка для обработки сериализации в «key: value; key: value; key: value; key: value;» формат
- 10. Return Key Value Pair
- 11. Drupal 6 $ key => $ value form #options array, построенный с использованием цикла while, где $ key = $ value
- 12. PySpark collectAsMap no key
- 13. Keying Key Value Coding Key
- 14. Array as array key
- 15. C# JSON Сериализация словаря в {key: value, ...} вместо {key: key, value: value, ...}
- 16. PHP - Как преобразовать массив из (Key, Value) в (Key, Value, Value)?
- 17. PHP Recursive Array Intersect Key Tripping over string value
- 18. My Script Multiplying Array Key Value Does't Work
- 19. Double Dollar Sign - Assign Array key => value
- 20. Map Array in C - Linked List w/Key: Value
- 21. Я обновляю объект array (key, value) в javascript
- 22. Spinner with Key-Value Pair
- 23. .htaccess переписать для преобразования каталогов в/key/value/key/value
- 24. Сохранение Key-Value и Value-Key словарей в одной таблице
- 25. php $ _SESSION ['post_vars'] [$ key] = $ value; - неопределенная переменная: key, value
- 26. Цикл forach $ key => $ value
- 27. set value value as array
- 28. Key/Value pyqt QComboBox
- 29. Key Value Coding осветление
- 30. Bucket Key Value Map?
Я не могу понять, что вы хотите. Обычно в python вы должны использовать карту для любой пары «ключ-значение», почему вы используете массивы, где трудно определить точное значение хранимых tupples. – WorldSEnder
Можете ли вы сделать это яснее? Если вы напишете результат, который вы хотите получить из данного массива, и объясните, что я могу помочь. – Chintan