Как написать тестовые примеры junit для функции UDF с использованием Java SparkJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как написать тестовые примеры junit для функции UDF с использованием Java Spark

Сообщение Anonymous »

Мы используем JUnit версии 5.3.1 и Mockito версии 4.11.0. Моя база кода находится в Spark с Java. Я пытаюсь написать тестовые примеры JUnit для функции UDF, поскольку UDF действует в отдельном потоке.
Ниже приведен код, который я написал функцию UDF для Upserts массива Mongo

Код: Выделить всё

UserDefinedFunction mergeArrays = functions.udf((WrappedArray array1, WrappedArray array2) -> {
Map arrayKeyMap = new HashMap();
List array1List = JavaConverters.seqAsJavaList(array1);
List array2List = JavaConverters.seqAsJavaList(array2);
String key1 = arrayFieldUniqueKeys.get(0);
String key2 = arrayFieldUniqueKeys.size() > 1 ? arrayFieldUniqueKeys.get(1) : "-1";

for (Row row : array1List) {
arrayKeyMap.put(new Tuple2(row.getAs(key1), key2.equals("-1") ? key2 : row.getAs(key2)), row);
}
List mergedList = new ArrayList();
mergedList.addAll(array2List);
for (Row row : array2List) {
Tuple2 key = new Tuple2(row.getAs(key1), key2.equals("-1") ? key2 : row.getAs(key2));
if (!arrayKeyMap.containsKey(key)) {
mergedList.add(row);
} else {
int index = 0;
for (Row mrow : mergedList) {
Tuple2 mRowKey = new Tuple2(mrow.getAs(key1), key2.equals("-1") ? key2 : mrow.getAs(key2));
if (mRowKey.equals(key)) {
break;
}
index++;
}
mergedList.set(index, arrayKeyMap.get(key));
}
}
return mergedList;
}, dataType);
Моя конфигурация JSON, как показано ниже

Код: Выделить всё

"arrayFields": "LegalAddress",
"arrayFieldsUniqueKey": "LegalAddress\~LocationGroupID,LegalAddress\~AddressType",
Как написать тестовые примеры junit для функции udf?

Подробнее здесь: https://stackoverflow.com/questions/784 ... java-spark
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»