В регулярном выражении это должна быть группа захвата для каждого столбца. Ваши данные содержат 5 столбцов и таблицу 4, вы хотите пропустить один столбец, верно?
Например, это регулярное выражение будет работать: with serdeproperties ('input.regex' = '^"(.*?)","(.*?)","(.*?)",.*?,"(.*?)"$')
Вы можете легко проверить без создания таблицы, как это :
select regexp_replace('"297","298","Y","","299"','^"(.*?)","(.*?)","(.*?)",.*?,"(.*?)"$','$1|$2|$3|$4');
OK
_c0
297|298|Y|299
select regexp_replace('"297","298","Y","this column is skipped","299"','^"(.*?)","(.*?)","(.*?)",.*?,"(.*?)"$','$1|$2|$3|$4');
OK
_c0
297|298|Y|299