我有一个Map器(custommapper.class)和一个reducer(customreducer.class)类,我想在spark中使用它们。我可以在hadoop中使用它们,方法是创建一个job对象,然后设置所需的mapper和reducer类,如下所示:
Configuration conf = new Configuration();
Job j = new Job(conf, "Adjacency Generator Job");
j.setMapperClass(CustomMapper.class);
j.setReducerClass(CustomReducer.class);
如何使用java在spark中实现相同的功能?我创建了一个java rdd对象,如下所示:
SparkConf conf=new SparkConf().setAppName("startingSpark").setMaster("local[*]");
JavaSparkContext sc = new JavaSparkContext(conf);
JavaRDD<String> myFile = sc.textFile(args[0]);
我不知道如何使用java绑定spark中的mapper和reducer类。感谢您的帮助。
1条答案
按热度按时间2eafrhcq1#
你为什么要这么做?spark在内部创建一个执行的dag,它由转换(如map、filters等)和触发dag的操作(如collect、count等)组成。这与map reduce的计算方式有根本的不同。因此,大致上,Map器将对应于rdd上的Map操作,而还原器将对应于任何聚合函数。请仔细阅读文档,了解spark的工作原理。