Apache Beam конвертирует PCollection в TableRow для тестирования - модульное тестирование потока данных - PullRequest
2 голосов
/ 21 марта 2019

Я пытаюсь написать модульный тест для конвейера.Конвейер включает в себя шаг, который записывает результаты в BigQuery.В тесте было уместно проверить последний шаг перед записью в BigQuery.В этом случае возвращаемый тип результата составного преобразования равен PCollection<TableRow>.Я пытаюсь утверждать, что этот результат равен TableRow, который я создаю вручную, используя new TableRow() и устанавливая значения индивидуально.

Возможно ли преобразовать этот TableRow, созданный вручную, в PCollection или можно извлечь TableRow из PCollection?Или мне нужно написать другое преобразование, чтобы преобразовать результат составного преобразования в String и ожидаемый результат (MANUALLY_CREATED_TABLEROW) в String и проверить их равенство?

 public void testPipeline() throws Exception {
    PCollection<String> input = p.apply(Create.of(STRING_MESSAGE).withCoder(StringUtf8Coder.of()));

    PCollection<TableRow> output = input.apply(new MyCompositeTransform());

    PAssert.that(output).containsInAnyOrder(MANUALLY_CREATED_TABLEROW);
    p.run().waitUntilFinish();
}

Существует поток , что ошибка и проблема похожи.

...