The error is telling you that you're trying to put an integer in a column that expects an integer. This is because you're trying to use the empty string as the type in the mapping document. The fact that it doesn't give you an error when you map to a non-empty field in the output schema doesn't mean that there are no errors.
It is required to specify the type of each field when the fields are empty when exporting from Wrangle. For example, let’s say I wanted to empty a field that was typed int64. I would do the following.
# empty int64 fields for (i in 1:length(x)){for (j in 1:length(x[i])) {if (length(x[i][j])) {x[i][j] = ""}} x[i]}
Note: that I'm using length here to show that it's really just a question of length, length is basically x[i][j]=="" for empty fields.
You will want to be careful to get your values the way you want them. It may help to look at what I wrote in my blog post using Wrangle as an example.
I've worked through your problem and see why you don't want to use "Empty" as your column type.
It looks like what you're trying to do is create a pipeline where there is an input schema that you can see, then output something to a new table with more columns.
But it doesn't look like you want to keep the column names for the columns you're not using - so you may want to change the type of your column in your source schema.
In Wrangle you can have two mappings - one that takes an empty value, and one that doesn't.
The empty value case is easy. Use the empty string as the value.
For the case where you want to create a field that's a string but the field value is "", that's pretty straightforward - just use "" as the value.