如何在 Mapreduce 作业的映射器中获取数据分片的文件路径?

How can I get the file path for data shard in the Mapper of a Mapreduce job?

我有一个 mapreduce 作业,其中文件输入路径是:/basedirectory/*/*.txt

在基本目录中,我有不同的子文件夹(CaseA、CaseB 等),每个子文件夹都包含 hdfs 文本文件。

在作业的映射阶段,我想找出数据分片的确切来源(例如CaseA)。我怎样才能做到这一点?

我已经为具有 1 个以上输入 hbase tables 的 mapreduce 作业做了类似的事情,我使用 context.getInputSplit().getTableName() 来查找实际的 table 名称但不确定如何处理 HDFS 输入文件。

您可以使用 context.getInputSplit()(其中 contextmapper.context)获得输入拆分,然后在 inputSplit 到 [=17] 上使用 .getPath() 方法=] 文件路径.