You should be able to extract the headers on row 1 via a calculation stage. This should pull the row using this:
Left([CSV], InStr([CSV], NewLine()))
You could then call CSV to Collection on the header row, which would give you an empty collection with column definitions (so it wouldn't have any data that could potentially lead to an out of memory exception). Perform the column name updates on the empty collection, then call Collection to CSV to switch it back to CSV. Finally, merge the updated header CSV with the rest of the data like this:
[Updated Headers] & Right([CSV], Len([CSV]) - InStr([CSV], NewLine()) + 1)
Alternatively, you could use the Replace() function in a calculation stage to update the headers instead of loading them in as a collection, but that could lead to unwanted results depending on your column names.
There may be some easier ways to do this, but this should work.
------------------------------
Nicholas Zejdlik
RPA Developer
------------------------------