大数据全系列 教程
1869个小节阅读:467.1k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
由于input对象时抽象类InputFormat声明的,点入getSplits方法时,是一个抽象方法:
xxxxxxxxxx
public abstract class InputFormat<K, V> {
public abstract
List<InputSplit> getSplits(JobContext context
) throws IOException, InterruptedException;
}
选中方法名getSplits,然后Ctrl+Alt+B,弹出如下界面:
确定InputFormat类是哪个?
Ctrl+点击 步骤3中job.getInputFormatClass()进行类的确定
xxxxxxxxxx
public Class<? extends InputFormat<?,?>> getInputFormatClass()
throws ClassNotFoundException;
选择getInputFormatClass(),Ctrl+Alt+B->选择JobContextImpl类中的代码:
xxxxxxxxxx
public Class<? extends InputFormat<?,?>> getInputFormatClass()
throws ClassNotFoundException {
//INPUT_FORMAT_CLASS_ATTR = "mapreduce.job.inputformat.class"
return (Class<? extends InputFormat<?,?>>)
conf.getClass(INPUT_FORMAT_CLASS_ATTR, TextInputFormat.class);
}
点击conf.getClass()
xxxxxxxxxx
public Class<?> getClass(String name, Class<?> defaultValue) {
String valueString = getTrimmed(name);
if (valueString == null)
return defaultValue;
try {
return getClassByName(valueString);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}