Я бы сделал это так, как это масштабируется
import org.apache.hadoop.io.NullWritable
import org.apache.spark._
import org.apache.spark.SparkContext._
import org.apache.hadoop.mapred.lib.MultipleTextOutputFormat
class RDDMultipleTextOutputFormat extends MultipleTextOutputFormat[Any, Any] {
override def generateActualKey(key: Any, value: Any): Any =
NullWritable.get()
override def generateFileNameForKeyValue(key: Any, value: Any, name: String): String =
key.asInstanceOf[String]
}
object Split {
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("Split" + args(1))
val sc = new SparkContext(conf)
sc.textFile("input/path")
.map(a => (k, v)) // Your own implementation
.partitionBy(new HashPartitioner(num))
.saveAsHadoopFile("output/path", classOf[String], classOf[String],
classOf[RDDMultipleTextOutputFormat])
spark.stop()
}
}
Просто увидел аналогичный ответ выше, но на самом деле нам не нужны настроенные разделы. MultipleTextOutputFormat создаст файл для каждого ключа. Это нормально, что несколько записей с теми же ключами попадают в один раздел.
новый HashPartitioner (num), где num - номер раздела, который вы хотите. В случае, если у вас есть большое количество разных ключей, вы можете установить число в большое. В этом случае каждый раздел не будет открывать слишком много обработчиков файлов hdfs.
Я - превосходный комплект удивленного JGSOFT инструментов еще, не был упомянут, особенно рассмотрев , автор является одним из нас :
Несомненно, ни один из них не свободен, но они нормально лицензируются, и все они поддерживают портативную установку.
Я не иду никуда без [1 121] puretext.exe
. Это - просто исполняемый файл на 28 Кбит, который дает Вам под Windows+V
(или безотносительно ключа, Вы хотите), что я иначе сделал бы довольно часто вручную после удара Ctrl+C
где-нибудь:
Windows+R
N
, O
, T
, E
, P
, A
, D
(в случае необходимости, часто был все еще в моем диалоговом окне Выполнения...) Enter
Ctrl+V
Ctrl+A
Ctrl+C
Alt+F4
N
(для No) Alt-Tab
(корректное необходимое количество раз, если любой...) Ctrl+V
, Другими словами: это вставляет "чистый текст" от буфера обмена без любой разметки, которая, возможно, была скопирована на буфер обмена с текстом.
Любой ПК я продолжаю работать больше часа - где у меня есть полномочия добраться puretext.exe
на и работающий - я поместил его в [1 120], дважды щелкаю по нему однажды, установил его, чтобы автоматически запустить в его настройках и всегда скрывать значок в панели задач.
Это так стоящее того.;-)
PortableApps также. Я играл с несколькими Linux-on-a-sticks, включая Slax (это - большой небольшой дистрибутив!), но компьютеры в моей школе, кажется, не позволяют загружаться от USB больше: '(
мне также удалось получить Cygwin на моем USB, но это немного странно, и я часто не использую его. Eclipse также, но только если Вам абсолютно нужен он, это работает, замедляется как патока.
веб-сервер XamppLite , таким образом, я могу быть в состоянии работать и протестировать любой PHP, CGI или сценарии везде, куда я иду.
Мой просто имеет музыку и мой проекты GTD . О, и несколько игр в течение тех промежуточных времен;-)
Одна из моих Карт флэш-памяти с интерфейсом USB имеет книги, которые я купил в формате PDF у Safari Онлайн. Способность нести десять или двадцать книг о.NET, HTML, CSS, SQL, Active Directory, безопасности, WPF, или независимо от того, что я, оказывается, имею там и тяну его, не сломав мой позвоночник, является БЕСЦЕННОЙ.
у Другого есть NUnit, TestDriven.NET, WinMerge, полоса прокрутки фиксирует для VB6, AnkSVN, копии спецификации C# и нескольких доморощенных инструментов.
Когда я нахожу время для него, я помещаю изображение Восстановления ПК Windows Home Server на Карте памяти . Мало того, что это более хорошо, чем CD для восстановления домашнего CD сервера, но можно также загрузиться к подсказке CMD или запустить диспетчер дисков.
я предпочитаю не копиям кэша загружаемого программного обеспечения, начиная с загрузки снова часто приносит последние обновления. Исключением является программное обеспечение, которое я должен перейти через обручи для получения (регистрация, и т.д.)
Для Windows:
Они позволяют мне доступ системы Linux, где реальные средства разработки живут через SSH и VNC.
У меня есть полная установка (постоянство повредилось на версии LiveUSB) (сера) Fedora 9 на одном разделе (ext2, таким образом, Windows не видит его) со следующими инструментами:
И на другом разделе, моих данных и следующих инструментах Windows:
РЕДАКТИРОВАНИЕ : у Меня теперь есть Fedora 10. Немного медленнее, и потребности vga=
для новой начальной загрузки для работы, но новые возможности делают его стоящим того.
В настоящее время: Python + Python Stackless Lua JCreator ConTEXT
большая часть моего USB составлен из Установщиков/Исходного кода хотя:)
В дополнение к большинству инструментов, уже перечисленных...
Process Explorer
Process Monitor
AutoRuns
Expresso
KeePass
ReNamer
TrueCrypt
Если у вас есть место для этого, AutoPatcher (вы запускаете его на своем ПК, чтобы загрузить все доступные обновления Windows, затем возьмите его на свое место и используйте для исправления их установки Windows).
Если вы носите с собой конфиденциальные данные , я бы порекомендовал такой инструмент шифрования, как Toucan.
Другие замечательные портативные приложения можно найти на portableapps.com .
Мне бы хотелось повторить рекомендацию Шона для PortableApps, поскольку из вашего примера может показаться, что вы выполняете поиск и устранение неисправностей компьютера, а не разработку работай. PortableApps предоставляет портативные версии ряда значимых инструментов, которые могут вам понадобиться и которые будут работать полностью с флэш-накопителя, включая Firefox (браузер), Thunderbird (электронная почта), FileZilla (ftp) и Open Office (обработка текстов, электронные таблицы, базы данных и т. Д.). .), 7-Zip (управление файлами zip) и т. Д. Если вы являетесь разработчиком .NET и устраняете проблему приложения, вы можете проверить SharpDevelop , который будет полностью запущен из флешка .
Я могу запустить Delphi5 на своем USB, используя некоторый пользовательский скрипт для правильной настройки реестра. Это очень удобно, поскольку позволяет мне:
У меня должен быть Directory Opus на моем USB-накопителе. Я использую его в первую очередь для функции поиска, которая намного лучше того, что предоставляет Windows.
Также, Keepass, уже упомянутый здесь.
Вот мой список. Все утилиты предназначены для MS Windows, протестированы на XP.
CSVed - editing comma seperated files EasyCleaner - Registry cleaner, application unistaller FolderSize - Size of folders, displayed with nice bar charts Foxit Reader - Fast & lightweight PDF reader Fsplit - File splitter GlovePIE - Advanced input scripting (mouse, keyboard, game controllers) JkDefrag - Defragger NiftyWindows - Bunch of window menagement features PowerOff - Scheduling system actions Process Hacker - Advanced task manager PSpad - Best free file editor PyScripter - Best GUI for Python Reflector - .NET application inspector ResHacker - view and edit executable resources Speq - best calculator, small and powerful UniExtract - extracts about 95% of archives and installers VLCplayer - video player with self-contained codecs Wheeler - mousescroll without prior focusing WikidPad - personal wiki for knowledge storage WinMerge - GUI diff tool xint - ultra lightweight editor XML Notepad 2007 - XML editor from M$ XYplorer - nice dualpane file explorer zDump - similar to Spy++ Zzoom - onscreen magnifier
Все, что было упомянуто до сих пор, великолепно.
Однако, если вы похожи на меня, и множество людей просят вас избавить их от демонов, потому что они неопытные пользователи, тогда вам также понадобится копия бесплатного программного обеспечения для защиты от вирусов, например AVG .
Expresso необходим для разработки и тестирования регулярных выражений
У меня на USB-флеш-накопителе установлен ubuntu linux: GIMP Затмение NetBeans
У меня есть портативный жесткий диск 160 ГБ от Western Digital - поэтому я ношу вокруг много вещей со мной.
Ни в одном конкретном порядке:
Портативный Python
7-zip
PUTTY & PSFTP
MySQL GUI Tools
Установщики для каждого крупного веб-браузера, Komodo Edit, Cygwin, Git и моими любимыми модулями Python.
Я сохраняю свои сборки acme-sac (виртуальные машины на основе инферно) для всех платформ, с которыми я взаимодействую - Win, Mac, Linux, BSD. Таким образом, у меня всегда есть моя предпочтительная рабочая среда со мной. Для Win я также добавляю cdb.exe, чтобы иметь настоящий отладчик вместо этого монстра DevStudio.