mrunit - использование mrunit.mapreduce.MapDriver без вызова настроенного устройства чтения записей - PullRequest
0 голосов
/ 06 февраля 2020

Я изменяю программу MapReduce в Record Reader и хотел написать тест-кейс для маппера для вызова настроенного InputFormat или Record Reader. Я изменил контрольный пример для программы чтения записей, но контрольные примеры программы чтения не являются mrunit.

Как вызвать настраиваемое средство чтения записей из Mapper, так как функция withInputFormat не указана в MapDriver.newMapDriver?

Пожалуйста, найдите снимок моего кода:

@Before
public void setUp(){
MapDriver<Object, Text, Text, Text> mapDriver = MapDriver.newMapDriver(new myMapper());
}

@Test
public void testFunction1() throws IOException {
mapDriver.withInput(...).withOutput(...).runTest();
}

Спасибо

1 Ответ

0 голосов
/ 13 февраля 2020

Я проверял MRUnit API, поэтому. Если вы хотите добавить пользовательский RecordReader, я бы предположил, что у вас должен быть пользовательский InputFormat, поскольку он должен назначить пользовательский RecordReader в метод createRecordReader пользовательского класса InputFormat.

Итак, MRUnit API позволяет назначить пользовательский InputFormat, а также пользовательский OutputFormat.

public MapDriver<K1,V1,K2,V2> withOutputFormat(Class<? extends org.apache.hadoop.mapreduce.OutputFormat> outputFormatClass,
                                      Class<? extends org.apache.hadoop.mapreduce.InputFormat> inputFormatClass)

Configure Mapper to output with a real OutputFormat. Set InputFormat to read 
output back in for use with run* methods

Parameters:
outputFormatClass -
inputFormatClass -

Returns:
this for fluent style

Исходя из этого, вы можете позвонить mapDriver.withOutFormat(customOutputFormat.class, customInputFormat.class). Таким образом, вы можете использовать RecordReader для тестирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...