- Print
- DarkLight
Convert_timestamps Transform
- Print
- DarkLight
The convert_timestamps transform converts strings representing timestamps into timestamp objects in a specified timezone. It can also be used to convert columns that already contain timestamps to the timezone.
Example:
If we want to convert the timestamps in the sf_caltrain_times column of each record to Pacific Standard Time, our configuration will look something like this:
{
"transforms": [
{
"transform_name": "Convert record timestamp",
"transform_type": "convert_timestamps",
"filter_stream": [
"*"
],
"field_names": [
"sf_caltrain_times"
],
"timezone": "America/Los_Angeles"
}
]
}
Configuration:
Required and optional properties that can be configured for a convert_timestamps transform.
- transform_name: Unique name for the transform.
- transform_type: Type of transform to apply. Should be convert_timestamps.
- filter_stream: List of data streams to transform. Each stream can either be * (all) or asset:stream.
- field_names: List of titles of text columns to convert to timestamps.
- timezone: Local timezone of the timestamps to convert. The timezone name should be in Olson timezone format, eg. Asia/Ho_Chi_Minh.
- format: Describes the timestamp format with the notation from strftime.org. For example, ‘%Y-%m-%d %H:%M’ is the format of ‘2018-01-26 17:21’. If the timestamp format is not set, the transform will attempt to guess the data format.
- unit: Specify the unit of time when converting an epoch time value into a datetime. For example:
>> pd.to_datetime(1490195805, unit='s')
Timestamp('2017-03-22 15:16:45')
Allowed values are: D, s, ms, us, ns. Please note that you cannot specify both unit and format.
Note:
Usually the transform is configured for a specific timestamp format:
{
"transform_name": "My Time Transform",
"transform_type": "convert_timestamps",
"filter_stream": ["*"],
"field_names": ["timestamp"],
"format": "%Y-%m-%d %H:%M:%S",
"timezone": "Asia/Tokyo"
}
However if the format is omitted then it will be automatically guessed:
{
"transform_name": "My Time Transform",
"transform_type": "convert_timestamps",
"filter_stream": ["*"],
"field_names": ["timestamp"],
"timezone": "Asia/Tokyo"
}
To convert UNIX Epoch time values to datetime, specify the units of time of the epoch values with unit.
{
"transform_name": "My Unix Timestamp Transform",
"transform_type": "convert_timestamps",
"filter_stream": ["*"],
"field_names": ["epoch_time"],
"timezone": "Asia/Tokyo",
"unit": "s"
}
In general it’s safer to set the format, since otherwise the transform will have to guess which part of the timestamp represents months and which represents days.