Недавно я написал HTML-дезинфицирующее средство в Java. Он основан на смешанном подходе регулярных выражений и Java-коде. Лично я ненавижу регулярные выражения и его глупость (читаемость, ремонтопригодность и т. Д.), Но если вы уменьшите объем своих приложений, это может соответствовать вашим потребностям. Во всяком случае, мой дезинфицирующее средство использует белый список для тегов HTML и черный список для некоторых атрибутов стиля.
Для вашего удобства я создал игровое поле, чтобы вы могли проверить, соответствует ли код вашим требованиям: игровая площадка и код Java . Ваши отзывы будут оценены.
Существует небольшая статья, описывающая эту работу в моем блоге: http://roberto.open-lab.com
Подход к внешним вызовам с внешней массой - это прямое преобразование RDD в DStream на уровне раздела.
Шаблон выглядит следующим образом:
val transformedStream = dstream.transform{rdd =>
rdd.mapPartitions{iterator =>
val externalService = Service.instance() // point to reserve local resources or make server connections.
val data = iterator.toList // to act in bulk. Need to tune partitioning to avoid huge data loads at this level
val resultCollection = externalService(data)
resultCollection.iterator
}
}
Этот процесс подхода каждый раздел базового RDD параллельно с использованием ресурсов, доступных в кластере. Обратите внимание, что подключение к внешней системе должно быть создано для каждого раздела (а не для каждого элемента).