Passing SAS Functions to Spark

SAS/ACCESS Interface to Spark passes the following SAS functions to Spark for processing. Where the Spark function name differs from the SAS function name, the Spark name appears in parentheses. For more information, see Passing Functions to the DBMS Using PROC SQL.

** (POWER) LOG10
ABS LOG2
ARCOS (ACOS) LOWCASE (LOWER)
ARSIN (ASIN) MINUTE
ATAN MOD (CAST)
CAT (CONCAT) MONTH
CEIL QTR (QUARTER)
COMPRESS (REGEXP_REPLACE) SCAN (SPLIT)
COS SECOND
COUNT SIGN
DAY SIN
DTEXTDAY (DAY) SOUNDEX
DTEXTMONTH (MONTH) SQRT
DTEXTWEEKDAY STD (STDDEV_SAMP)
DTEXTYEAR (YEAR) STRIP (TRIM)
EXP SUBSTR
FLOOR TAN
HOUR TRIMN (RTRIM)
INDEX (LOCATE) UPCASE (UPPER)
LEFT (LTRIM) VAR (VAR_SAMP)
LENGTH (LENGTH(RTRIM)) YEAR
LOG (LN)

SQL_FUNCTIONS=ALL allows for SAS functions that have slightly different behavior from corresponding Spark functions that are passed down to Hadoop. Only when SQL_FUNCTIONS=ALL can the SAS/ACCESS engine also pass these SAS SQL functions to Spark. Due to incompatibility in date and time functions between Spark and SAS, Spark might not process them correctly. Check your results to determine whether these functions are working as expected.

COALESCE
DATE (TO_DATE (FROM_UNIX_TIMESTAMP))
DATEPART (TO_DATE (FROM_UNIX_TIMESTAMP))
DATETIME (FROM_UNIXTIME(UNIX_TIMESTAMP))
REPEAT
ROUND
TODAY (TO_DATE(FROM_UNIXTIME(UNIX_TIMESTAMP))
TRANSTRN (REGEXP_REPLACE)
Last updated: February 3, 2026