Сначала о решениях, которые вы предложили:
solution2 :
Никогда не собирайте rdd.
Если вы соберете rdd, это означает, что ваше решение не будет масштабируемым, или это означает, что вам не нужен rdd во-первых.
решение1 :
Аналогично ссылке на решение2, но с некоторыми исключениями, ваш случай не является одним из этих исключений.
Как уже упоминалось, «искровой» способ сделать это - использовать « join ».
Конечно, нет необходимости преобразовывать данные в искровой кадр.
Вот решение:
rdd1 = sc.parallelize([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)])
rdd2 = sc.parallelize([('aa', 1), ('bb', 2), ('cc', 3), ('dd', 4), ('ee', 5)])
rdd3 = sc.parallelize([(('a', 'aa'), 1), (('b', 'dd'), 8), (('e', 'aa'), 34), (('c', 'ab'), 23)])
print rdd3.map(lambda x: (x[0][0], (x[0][1], x[1])))\
.join(rdd1)\
.map(lambda x: (x[1][0][0], (x[0], x[1][0][1], x[1][1]))).join(rdd2)\
.filter(lambda x: x[1][0][1] > x[1][0][2] + x[1][1])\
.map(lambda x: ((x[1][0][0], x[0]), x[1][0][1]))\
.collect()
--> [(('b', 'dd'), 8), (('e', 'aa'), 34)]
NUnit копируется после JUnit, но если Вы используете Visual Studio, 2008 затем рассматривает встроенную платформу поблочного тестирования.
Платформа модульного теста: NUnit
Бегун модульного теста: Различный, но лично мне нравится тот в ReSharper. (ReSharper стоит денег, но легко стоит того для различных улучшений производительности.)
Покрытие: NCover (я думаю, что это раньше было свободно, но он теперь стоит денег. Хм.)
Я настоятельно рекомендовал бы Галлио (официально mbUnit) для поблочного тестирования, и (к сожалению, не свободный) NCover для покрытия кода.
Относительно Вашего вопроса о платформах модульного теста:
NUnit 1.0 был портом для прямого обращения JUnit. NUnit 2.0 переехал от синтаксиса JUnit для использования в своих интересах платформы.NET. xUnit.net является более новой платформой модульного теста (от Jim Newkirk - одного из разработчиков NUnit 2.0 - и Brad Wilson), который указывает как цель, выставляющая "усовершенствования в других реализациях библиотеки модульного теста, которые действительно не появились в.NET", которую я считал как "не отстающий от JUnit".
NUnit, но NCover является только частью ответа, поскольку это не свободно. Я спросил в другом месте об этом.
У Профессионала VS2008 есть Системная функциональность поблочного тестирования Команды, испеченная в.
Я установил бы:
Как и в стороне я нахожу это нечетным, что парни NUnit, кажется, используют php для хостинга их домашней страницы...