Okay, I got it now @Anonymous !
Also, I found the blocker earlier; the space after the comma makes a difference! So putting space after the comma in delimiter took care of that.
Below I past the dataflow script. It works pretty much like I originally wanted.
source(output(
user_id as short,
certification_id as string,
certification_title as string,
expiry_date as string
),
useSchema: false,
allowSchemaDrift: true,
validateSchema: false,
ignoreNoFilesFound: false,
format: 'delimited',
container: 'input',
fileName: 'vasmi.csv',
columnDelimiter: ', ',
escapeChar: '',
quoteChar: '\"',
columnNamesAsHeader: true) ~> source1
source1 derive(certification_id = split(trim(certification_id,'"'),", "),
certification_title = split(trim(certification_title,'"'),", "),
expiry_date = split(trim(expiry_date,'"'),", ")) ~> MakeIntoArrays
MakeIntoArrays derive(compound = unfold(mapLoop(
size(certification_id),
array(certification_id[#index],certification_title[#index],expiry_date[#index])
))) ~> CompoundAndUnfold
CompoundAndUnfold select(mapColumn(
user_id,
compound
),
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> CleanColumns
CleanColumns derive(cert_id = compound[1],
cert_title = compound[2],
expiry_date = compound[3]) ~> SeparateIntoProperties
SeparateIntoProperties sink(allowSchemaDrift: true,
validateSchema: false,
format: 'delimited',
fileSystem: 'data',
folderPath: 'out',
columnDelimiter: ',',
escapeChar: '\\',
quoteChar: '\"',
columnNamesAsHeader: true,
umask: 0022,
preCommands: [],
postCommands: [],
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true,
mapColumn(
user_id,
cert_id,
cert_title,
expiry_date
)) ~> sink1
unfold(mapLoop(
size(certification_id),
array(certification_id[#index],certification_title[#index],expiry_date[#index])
))