在spark中使用hadoop作业

drkbr07n  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(342)

我有一个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类。感谢您的帮助。

2eafrhcq

2eafrhcq1#

你为什么要这么做?spark在内部创建一个执行的dag,它由转换(如map、filters等)和触发dag的操作(如collect、count等)组成。这与map reduce的计算方式有根本的不同。因此,大致上,Map器将对应于rdd上的Map操作,而还原器将对应于任何聚合函数。请仔细阅读文档,了解spark的工作原理。

相关问题