<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def asof_join(left, right, predicates=(), by=(), tolerance=None):
 """Perform an asof join between two tables. Similar to a left join except that the match is done on nearest key rather than equal keys. Optionally, match keys with 'by' before joining with predicates. Parameters left : TableExpr right : TableExpr predicates : join expression(s) by : string column to group by before joining tolerance : interval Amount of time to look behind when joining Returns ------- joined : TableExpr Note that the schema is not materialized yet """

    return ops.AsOfJoin(left, right, predicates, by, tolerance).to_expr()