Skip to main content

How to convert all fields to uppercase/lowercase?

  • December 21, 2021
  • 0 replies
  • 312 views

AkshayJadhav
StreamSets Employee
Forum|alt.badge.img

Scenario:

How to convert all fields within the record to uppercase/lowercase?

 

Solution:

With the field converter, a user could list the column names to be converted. However, if a record contains tens or hundreds of fields, this could be a very challenging exercise. For now, the user could achieve this by using a scripting processor. For example, the following code should convert all fields to lowercase and keep the field type (INTEGER, DATE) if there is a NULL value (for other field types, please see also Jython evaluator converts fields with null to STRING):

for record in records:
  try:
    for key in record.value.keys():
      if sdcFunctions.getFieldNull(record, '/'+key) == NULL_INTEGER:
        record.value[key.lower()] = NULL_INTEGER
      elif sdcFunctions.getFieldNull(record, '/'+key) == NULL_DATE:
        record.value[key.lower()] = NULL_DATE
      else:
        record.value[key.lower()] = record.value[key]
      del record.value[key]
    output.write(record)
  except Exception as e:
    # Send record to error
    error.write(record, str(e))

 

Did this topic help you find an answer to your question?
This topic has been closed for comments