Я бы сделал это так, как это масштабируется
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.
У меня есть свой номер мобильного телефона как название Карты памяти поэтому, если я теряю его, честный человек мог бы позвонить мне и возвратить его.
PortableApps.com имеет большую часть того, что находится на моей портативной Карте памяти:
Помимо тех, я также имею Вне всякого сравнения на моей Карте памяти.
Мне нравится PortableApps. Я использую NotePad ++, приложения OpenOffice, и т.д.
Для Windows, многих из sysinternal инструменты.
Примечание: Я - разработчик Windows. Это окрашивает то, что Вы читаете ниже.
Примечание акцент на отладку собственного кода здесь, потому что, если я отсутствую в поле, это обычно, что я делаю.
Я добавил бы к списку это большое OSS для Windows:
Удобно иметь http://unxutils.sourceforge.net/ (grep/cut/sh и т.д....), Вам, возможно, понадобится некоторая среда лучше тогда cmd для выполнения его. Попробуйте FAR - http://www.farmanager.com/index.php?l=en (используйте открытый исходный код один).
Денвер - все в одном пакете веб-сервера (также с поддержкой установки флэш-памяти usb): http://translate.google.com/translate?hl=uk&ie=UTF-8&u=http%3A%2F%2Fwww.denwer.ru%2F&sl=ru&tl=en&history_state0=
, Но это для российской аудитории.
Не упомянутые:
Моя VPN Client Software;)
Мммм Сладкий сладкий удаленный рабочий стол. пускают слюни
Я несу файл жесткого диска VirtualBox, который содержит целую среду разработки для нашего проекта.
требуется приблизительно минута для установки на любой новой машине для разработки в знакомой среде.
Установка VirtualBox, создайте новую виртуальную машину, включите карту памяти, укажите на виртуальную машину на файл жесткого диска, начальную загрузку в dev среду от виртуальной машины. Занимает приблизительно минуту на времени загрузки VirtualBox.
Я собирался сказать: "Ничто" и я не решаем проверить мой USB дважды, и я нашел VIM и мой .vimrc и ProcessXP
, я обычно не использую его оттуда, но время от времени (3 - 6 месяцев) я вхожу в новую машину и копирую их с usb.
апач, php5 и mysql (а также блокнот ++)
у меня также есть некоторые сценарии, которые копируют файл php.ini в папку C:\windows, и т.д.
Я использую USB-флешку объемом 16 ГБ (доступны большие тома) в качестве Linux-системы, которая содержит всю мою рабочую среду. Каждый компьютер, который я использую, загружается с этого диска в мою систему.
На веб-сайте Portable Apps загружено приложений , которые могут оказаться полезными, например WinMerge, Notepad ++ и Gimp.
Если вы это сделаете Я полагаю, что многие веб-разработки Aptana поместятся на флэш-накопителе.
Когда я отлаживаю что-то на чьей-то машине, первое, что я делаю, это устанавливаю Vim . Присоединяйтесь к нам, это образ жизни.
Я использую UnixUtils, чтобы взять с собой.
UnixUtils - это набор команд Unix, портированных на Windows, поэтому мне нужно только добавить каталог к пути Windows, и тогда я смогу использовать большинство общих Команда linux в оболочке Windows-машины облегчает мою работу.
Я бы добавил LINQPad в этот список. Если вам нужно что-то делать с запросами LINQ, это обязательное программное обеспечение. Он имеет автономный исполняемый файл, поэтому вы можете запустить его полностью с флэш-накопителя, если хотите.
grep, определенно должен быть какой-нибудь инструмент grep.
I have a lot on one of my keys, mostly asm related.
I also have
And some other stuff that I can't remember as I don't have it on me :'(
I also have a usb key with backtrack3 on it and one with a windows image that I can use to install it on my netbook really quickly. I think this is a good guide on doing that.