У меня есть большой график, который имеет около 4M узлов. Граф состоит из двух файлов, один из которых содержит имена узлов и один из них содержит ребра (каждая строка представляет собой один край). Я хочу равномерно пробовать узлы графа и придумывать образец размером до 15% всего графика. Учитывая размер графика, каков наилучший (или, возможно, возможный) способ создания такого образца?Как равномерно пробовать большой график?
0
A
ответ
0
Используйте этот код Java, чтобы выбрать 15% вершин случайно:
import java.io.IOException;
import java.util.*;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.io.*;
import org.apache.hadoop.mapreduce.*;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
public class RandomSample {
public static class Map extends Mapper<LongWritable, Text, Text, Text> {
private Text word = new Text();
public void map(LongWritable key, Text value, Context context)
throws IOException, InterruptedException {
if (Math.random()<0.15)
context.write(value,null);
else
context.write(null,null);
context.write(value,null);
}
}
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
Job job = new Job(conf, "randomsample");
job.setJarByClass(RandomSample.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
job.setInputFormatClass(TextInputFormat.class);
job.setOutputFormatClass(TextOutputFormat.class);
job.setNumReduceTasks(0);
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
job.waitForCompletion(true);
}
}
И использовать этот Баш скрипт, чтобы запустить его
echo "Running Job"
hadoop jar RandomSample.jar RandomSample $1 tmp
echo "copying result to local path (RandomSample)"
hadoop fs -getmerge tmp RandomSample
echo "Clean up"
hadoop fs -rmr tmp
Например, если мы называем random_sample.sh скрипт , чтобы выбрать 15% из папки/например /, просто запустите
./random_sample.sh /example/
Затем, вы можете использовать простой grep
операция по второму файлу для выбора только ребер, содержащих случайно выбранные вершины
Смежные вопросы
- 1. Как визуализировать большой график?
- 2. как пробовать очень большой файл CSV (6 ГБ)
- 3. Участок большой рассеянный график
- 4. Большой график в памяти
- 5. Самый большой диапазон равномерно распределенных значений поплавка?
- 6. Как правильно пробовать плотность?
- 7. Большой график Neo4j не отображается
- 8. Как хранить большой график на диске
- 9. Как обработать большой график Titan, используя Spark
- 10. График тензорного потока слишком большой
- 11. Как создать 3D-график с использованием равномерно распределенных значений?
- 12. Как пробовать строки в пакете randomForest
- 13. Как пробовать для каждой группы в улье?
- 14. Как пробовать цвет внутри изображения
- 15. Как «пробовать» значение в VHDL?
- 16. Как я могу пробовать процесс?
- 17. Как произвольно пробовать матрицу в python?
- 18. PEGKit Продолжайте пробовать правила
- 19. Как пробовать самостоятельно с помощью pymc3
- 20. Что на самом деле означает «большой» график
- 21. большой график поддерживаемых сборок для PCL?
- 22. Большой график networkx для ближайших соседей.
- 23. Распределить объекты, равномерно сфокусированные на центре (График рисования)
- 24. Почему RDBMS плохо хранит значительно большой график?
- 25. Как пробовать при условии с пандами?
- 26. Как пробовать матричные элементы в matlab
- 27. Как пробовать несколько цепей в PyMC3
- 28. Как правильно пробовать метод JSON.parse с bluebird
- 29. R: Как визуализировать большой и слипаются график рассеяния
- 30. Как индексировать очень большой график, используя Hadoop MapReduce?
Вы хотите пробовать только узлы или подграф (узлы + соответствующие ребра), которые определяют эти узлы? –
На самом деле это подграф, то есть граф, который формирует выбранные узлы. –