Для удаления специальных символов из данных при перемещении данных из mssql в mysql с помощью интеграции данных pentaho
В таблице данных, я должен удалить эти [*,=,#,&,^,%]
из таблицы данных. Я не должен удалять эти
специальные символы [(,),/,.,@,',",:-,_,,\]
при перемещении данных из mssql
в mysql
с помощью pentaho
данные
интеграция
пример:-
Gujarat is the country’s largest castor oil seed producing state. The m*ajor
month’s
3 ответа
Вы можете использовать либо Regex Evaluation
шаг или String operations
шаг в ложку
Попробуйте их, и если у вас все еще есть проблемы, прокомментируйте ниже.
Вы можете использовать "Пользовательский класс Java" в Пентахо и написать выражение регулярного выражения с помощью функции замены.
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException{
Object[] r = getRow();
if (r == null) {
setOutputDone();
return false;
}
if (first)
{
first = false;
}
r = createOutputRow(r, 1);
if(get(Fields.In, "data").getString(r) != null)
{
String output= get(Fields.In, "data").getString(r);
output= output.replaceAll("[^a-zA-Z0-9\\s()/\\.@-_]+","");
get(Fields.Out, "output").setValue(r, output);
}else {
get(Fields.Out, "output").setValue(r, "");
}
putRow(data.outputRowMeta, r);
return true;
}
data - данные входного потока, а очищенный вывод будет находиться в столбце " output ". Я поделился примером кода здесь.
Надеюсь, что это решит вашу проблему.:)
Изменение моего предыдущего ответа, чтобы включить полный код. Сказав это, я также недавно создал плагин для обработки специальных символов. Вы можете взглянуть на мой блог:
Ссылка на блог: https://anotherreeshu.wordpress.com/2015/01/07/special-character-remover-clean-your-data-of-special-characters-pentaho-kettle-step-plugin/
Хотя это только версия 1.0.0, но вы можете попробовать. Это также может помочь ypu:)
Почему бы не использовать регулярные выражения в запросе, который вы используете для извлечения данных? Это упростит вашу трансформацию!