我正在尝试使用以下代码在Hadoop映射器中获取文件名:
FileSplit fileSplit = (FileSplit) context.getInputSplit();
String filename = fileSplit.getPath().getName();
我导入的库是:
import org.apache.hadoop.mapred.FileSplit;
我得到异常(exception):
org.apache.hadoop.mapreduce.lib.input.FileSplit cannot be cast to org.apache.hadoop.mapred.FileSplit
有人可以帮忙吗?
最佳答案
很好,就在这里-您的导入行是错误的,因为使用org.apache.hadoop.mapreduce.lib.input.FileSplit
返回InputSplit实现
为什么不导入org.apache.hadoop.mapreduce.lib.input.FileSplit
?两种实现都满足InputSplit
的约定,因此它应该是无缝的,除非某些其他方法类明确要求特定的FileSplit
实现。