Scalar Functions Support Status
Out of 357 scalar functions in Spark 3.5, Gluten currently fully supports 240 functions and partially supports 24 functions.
Array Functions
Spark Functions | Spark Expressions | Status | Restrictions |
---|
array | CreateArray | S | |
array_append | ArrayAppend | S | |
array_compact | ArrayCompact | S | |
array_contains | ArrayContains | S | |
array_distinct | ArrayDistinct | S | |
array_except | ArrayExcept | S | |
array_insert | ArrayInsert | S | |
array_intersect | ArrayIntersect | S | |
array_join | ArrayJoin | S | |
array_max | ArrayMax | S | |
array_min | ArrayMin | S | |
array_position | ArrayPosition | S | |
array_prepend | ArrayPrepend | S | |
array_remove | ArrayRemove | S | |
array_repeat | ArrayRepeat | S | |
array_union | ArrayUnion | S | |
arrays_overlap | ArraysOverlap | S | |
arrays_zip | ArraysZip | S | |
flatten | Flatten | S | |
get | Get | S | |
sequence | Sequence | | |
shuffle | Shuffle | S | |
slice | Slice | S | |
sort_array | SortArray | S | |
Bitwise Functions
Spark Functions | Spark Expressions | Status | Restrictions |
---|
& | BitwiseAnd | S | |
^ | BitwiseXor | S | |
bit_count | BitwiseCount | S | |
bit_get | BitwiseGet | S | |
getbit | BitwiseGet | S | |
shiftright | ShiftRight | S | |
shiftrightunsigned | ShiftRightUnsigned | | |
| | BitwiseOr | S | |
~ | BitwiseNot | S | |
Collection Functions
Spark Functions | Spark Expressions | Status | Restrictions |
---|
array_size | ArraySize | S | |
cardinality | Size | S | |
concat | Concat | S | |
reverse | Reverse | S | |
size | Size | S | |
Conditional Functions
Spark Functions | Spark Expressions | Status | Restrictions |
---|
coalesce | Coalesce | S | |
if | If | S | |
ifnull | Nvl | S | |
nanvl | NaNvl | S | |
nullif | NullIf | S | |
nvl | Nvl | S | |
nvl2 | Nvl2 | S | |
when | CaseWhen | S | |
Conversion Functions
Spark Functions | Spark Expressions | Status | Restrictions |
---|
bigint | | S | |
binary | | S | |
boolean | | S | |
cast | Cast | S | |
date | | S | |
decimal | | S | |
double | | S | |
float | | S | |
int | | S | |
smallint | | S | |
string | | S | |
timestamp | | S | |
tinyint | | S | |
Csv Functions
Spark Functions | Spark Expressions | Status | Restrictions |
---|
from_csv | CsvToStructs | | |
schema_of_csv | SchemaOfCsv | | |
to_csv | StructsToCsv | | |
Date and Timestamp Functions
Spark Functions | Spark Expressions | Status | Restrictions |
---|
add_months | AddMonths | S | |
convert_timezone | ConvertTimezone | | |
curdate | CurDateExpressionBuilder | | |
current_date | CurrentDate | | |
current_timestamp | CurrentTimestamp | | |
current_timezone | CurrentTimeZone | | |
date_add | DateAdd | S | |
date_diff | DateDiff | S | |
date_format | DateFormatClass | S | |
date_from_unix_date | DateFromUnixDate | S | |
date_part | DatePartExpressionBuilder | | |
date_sub | DateSub | S | |
date_trunc | TruncTimestamp | S | |
dateadd | DateAdd | S | |
datediff | DateDiff | S | |
datepart | DatePartExpressionBuilder | | |
day | DayOfMonth | S | |
dayofmonth | DayOfMonth | S | |
dayofweek | DayOfWeek | S | |
dayofyear | DayOfYear | S | |
extract | Extract | S | |
from_unixtime | FromUnixTime | S | |
from_utc_timestamp | FromUTCTimestamp | S | |
hour | Hour | S | |
last_day | LastDay | S | |
localtimestamp | LocalTimestamp | | |
make_date | MakeDate | S | |
make_dt_interval | MakeDTInterval | | |
make_interval | MakeInterval | | |
make_timestamp | MakeTimestamp | S | |
make_timestamp_ltz | MakeTimestampLTZExpressionBuilder | | |
make_timestamp_ntz | MakeTimestampNTZExpressionBuilder | | |
make_ym_interval | MakeYMInterval | S | |
minute | Minute | S | |
month | Month | S | |
months_between | MonthsBetween | | |
next_day | NextDay | S | |
now | Now | | |
quarter | Quarter | S | |
second | Second | S | |
session_window | SessionWindow | | |
timestamp_micros | MicrosToTimestamp | S | |
timestamp_millis | MillisToTimestamp | S | |
timestamp_seconds | SecondsToTimestamp | S | |
to_date | ParseToDate | | |
to_timestamp | ParseToTimestamp | | |
to_timestamp_ltz | ParseToTimestampLTZExpressionBuilder | | |
to_timestamp_ntz | ParseToTimestampNTZExpressionBuilder | | |
to_unix_timestamp | ToUnixTimestamp | PS | |
to_utc_timestamp | ToUTCTimestamp | S | |
trunc | TruncDate | S | |
try_to_timestamp | TryToTimestampExpressionBuilder | | |
unix_date | UnixDate | S | |
unix_micros | UnixMicros | S | |
unix_millis | UnixMillis | S | |
unix_seconds | UnixSeconds | S | |
unix_timestamp | UnixTimestamp | S | |
weekday | WeekDay | S | |
weekofyear | WeekOfYear | S | |
window | TimeWindow | | |
window_time | WindowTime | | |
year | Year | S | |
Hash Functions
Spark Functions | Spark Expressions | Status | Restrictions |
---|
crc32 | Crc32 | S | |
hash | Murmur3Hash | S | |
md5 | Md5 | S | |
sha | Sha1 | S | |
sha1 | Sha1 | S | |
sha2 | Sha2 | S | |
xxhash64 | XxHash64 | S | |
JSON Functions
Spark Functions | Spark Expressions | Status | Restrictions |
---|
from_json | JsonToStructs | PS | from_json with ‘spark.sql.caseSensitive = true’ is not supported in Velox from_json with ‘spark.sql.json.enablePartialResults = false’ is not supported in Velox from_json with column corrupt record is not supported in Velox from_json with duplicate keys is not supported in Velox from_json with options is not supported in Velox |
get_json_object | GetJsonObject | S | |
json_array_length | LengthOfJsonArray | S | |
json_object_keys | JsonObjectKeys | S | |
json_tuple | JsonTuple | S | |
schema_of_json | SchemaOfJson | | |
to_json | StructsToJson | PS | When ‘spark.sql.caseSensitive = false’, to_json produces unexpected result for struct field with uppercase name to_json with options is not supported in Velox |
Lambda Functions
Spark Functions | Spark Expressions | Status | Restrictions |
---|
aggregate | ArrayAggregate | S | |
array_sort | ArraySort | S | |
exists | ArrayExists | S | |
filter | ArrayFilter | S | |
forall | ArrayForAll | S | |
map_filter | MapFilter | S | |
map_zip_with | MapZipWith | S | |
reduce | ArrayAggregate | S | |
transform | ArrayTransform | S | |
transform_keys | TransformKeys | S | |
transform_values | TransformValues | S | |
zip_with | ZipWith | S | |
Map Functions
Spark Functions | Spark Expressions | Status | Restrictions |
---|
element_at | ElementAt | S | |
map | CreateMap | PS | |
map_concat | MapConcat | PS | |
map_contains_key | MapContainsKey | S | |
map_entries | MapEntries | S | |
map_from_arrays | MapFromArrays | | |
map_from_entries | MapFromEntries | | |
map_keys | MapKeys | S | |
map_values | MapValues | S | |
str_to_map | StringToMap | PS | Only spark.sql.mapKeyDedupPolicy = EXCEPTION is supported for Velox backend |
try_element_at | TryElementAt | | |
Mathematical Functions
Spark Functions | Spark Expressions | Status | Restrictions |
---|
% | Remainder | S | |
* | Multiply | S | |
+ | Add | S | |
- | Subtract | S | |
/ | Divide | S | |
abs | Abs | S | |
acos | Acos | S | |
acosh | Acosh | S | |
asin | Asin | S | |
asinh | Asinh | S | |
atan | Atan | S | |
atan2 | Atan2 | S | |
atanh | Atanh | S | |
bin | Bin | S | |
bround | BRound | | |
cbrt | Cbrt | S | |
ceil | CeilExpressionBuilder | PS | |
ceiling | CeilExpressionBuilder | PS | |
conv | Conv | S | |
cos | Cos | S | |
cosh | Cosh | S | |
cot | Cot | S | |
csc | Csc | S | |
degrees | ToDegrees | S | |
div | IntegralDivide | | |
e | EulerNumber | S | |
exp | Exp | S | |
expm1 | Expm1 | S | |
factorial | Factorial | S | |
floor | FloorExpressionBuilder | PS | |
greatest | Greatest | S | |
hex | Hex | S | |
hypot | Hypot | S | |
least | Least | S | |
ln | Log | | |
log | Logarithm | S | |
log10 | Log10 | S | |
log1p | Log1p | S | |
log2 | Log2 | S | |
mod | Remainder | S | |
negative | UnaryMinus | S | |
pi | Pi | S | |
pmod | Pmod | S | |
positive | UnaryPositive | S | |
pow | Pow | S | |
power | Pow | S | |
radians | ToRadians | | |
rand | Rand | S | |
randn | Randn | | |
random | Rand | S | |
rint | Rint | S | |
round | Round | S | |
sec | Sec | S | |
shiftleft | ShiftLeft | S | |
sign | Signum | S | |
signum | Signum | S | |
sin | Sin | | |
sinh | Sinh | S | |
sqrt | Sqrt | S | |
tan | Tan | | |
tanh | Tanh | | |
try_add | TryAdd | PS | |
try_divide | TryDivide | | |
try_multiply | TryMultiply | | |
try_subtract | TrySubtract | | |
unhex | Unhex | S | |
width_bucket | WidthBucket | S | |
Misc Functions
Spark Functions | Spark Expressions | Status | Restrictions |
---|
aes_decrypt | AesDecrypt | | |
aes_encrypt | AesEncrypt | | |
assert_true | AssertTrue | S | |
bitmap_bit_position | BitmapBitPosition | | |
bitmap_bucket_number | BitmapBucketNumber | | |
bitmap_count | BitmapCount | | |
current_catalog | CurrentCatalog | | |
current_database | CurrentDatabase | | |
current_schema | CurrentDatabase | | |
current_user | CurrentUser | | |
equal_null | EqualNull | S | |
hll_sketch_estimate | HllSketchEstimate | | |
hll_union | HllUnion | | |
input_file_block_length | InputFileBlockLength | | |
input_file_block_start | InputFileBlockStart | | |
input_file_name | InputFileName | | |
java_method | CallMethodViaReflection | | |
monotonically_increasing_id | MonotonicallyIncreasingID | | |
reflect | CallMethodViaReflection | | |
spark_partition_id | SparkPartitionID | S | |
try_aes_decrypt | TryAesDecrypt | | |
typeof | TypeOf | | |
user | CurrentUser | | |
uuid | Uuid | S | |
version | SparkVersion | S | |
|| | | S | |
Predicate Functions
Spark Functions | Spark Expressions | Status | Restrictions |
---|
! | Not | S | |
!= | | S | |
< | LessThan | S | |
<= | LessThanOrEqual | S | |
<=> | EqualNullSafe | S | |
<> | | S | |
= | EqualTo | S | |
== | EqualTo | S | |
> | GreaterThan | S | |
>= | GreaterThanOrEqual | S | |
and | And | S | |
between | | S | |
case | | S | |
ilike | ILike | S | |
in | In | PS | |
isnan | IsNaN | S | |
isnotnull | IsNotNull | S | |
isnull | IsNull | S | |
like | Like | S | |
not | Not | S | |
or | Or | S | |
regexp | RLike | PS | Lookaround unsupported |
regexp_like | RLike | PS | Lookaround unsupported |
rlike | RLike | PS | Lookaround unsupported |
String Functions
Spark Functions | Spark Expressions | Status | Restrictions |
---|
ascii | Ascii | S | |
base64 | Base64 | PS | base64 with chunkBase64String disabled is not supported |
bit_length | BitLength | S | |
btrim | StringTrimBoth | S | |
char | Chr | S | |
char_length | Length | S | |
character_length | Length | S | |
chr | Chr | S | |
concat_ws | ConcatWs | S | |
contains | ContainsExpressionBuilder | PS | BinaryType unsupported |
decode | Decode | | |
elt | Elt | | |
encode | Encode | | |
endswith | EndsWithExpressionBuilder | PS | BinaryType unsupported |
find_in_set | FindInSet | S | |
format_number | FormatNumber | | |
format_string | FormatString | | |
initcap | InitCap | S | |
instr | StringInstr | S | |
lcase | Lower | S | |
left | Left | S | |
len | Length | S | |
length | Length | S | |
levenshtein | Levenshtein | S | |
locate | StringLocate | S | |
lower | Lower | S | |
lpad | LPadExpressionBuilder | PS | BinaryType unsupported |
ltrim | StringTrimLeft | S | |
luhn_check | Luhncheck | S | |
mask | MaskExpressionBuilder | S | |
octet_length | OctetLength | | |
overlay | Overlay | S | |
position | StringLocate | S | |
printf | FormatString | | |
regexp_count | RegExpCount | | |
regexp_extract | RegExpExtract | PS | Lookaround unsupported |
regexp_extract_all | RegExpExtractAll | PS | Lookaround unsupported |
regexp_instr | RegExpInStr | | |
regexp_replace | RegExpReplace | PS | Lookaround unsupported |
regexp_substr | RegExpSubStr | | |
repeat | StringRepeat | S | |
replace | StringReplace | S | |
right | Right | S | |
rpad | RPadExpressionBuilder | PS | BinaryType unsupported |
rtrim | StringTrimRight | S | |
sentences | Sentences | | |
soundex | SoundEx | S | |
space | StringSpace | | |
split | StringSplit | S | |
split_part | SplitPart | S | |
startswith | StartsWithExpressionBuilder | PS | BinaryType unsupported |
substr | Substring | PS | |
substring | Substring | PS | |
substring_index | SubstringIndex | S | |
to_binary | ToBinary | | |
to_char | ToCharacter | | |
to_number | ToNumber | | |
to_varchar | ToCharacter | | |
translate | StringTranslate | S | |
trim | StringTrim | S | |
try_to_binary | TryToBinary | | |
try_to_number | TryToNumber | | |
ucase | Upper | S | |
unbase64 | UnBase64 | PS | unbase64 with failOnError is not supported |
upper | Upper | S | |
Struct Functions
Spark Functions | Spark Expressions | Status | Restrictions |
---|
named_struct | CreateNamedStruct | S | |
struct | | S | |
URL Functions
Spark Functions | Spark Expressions | Status | Restrictions |
---|
parse_url | ParseUrl | | |
url_decode | UrlDecode | S | |
url_encode | UrlEncode | S | |
XML Functions
Spark Functions | Spark Expressions | Status | Restrictions |
---|
xpath | XPathList | | |
xpath_boolean | XPathBoolean | | |
xpath_double | XPathDouble | | |
xpath_float | XPathFloat | | |
xpath_int | XPathInt | | |
xpath_long | XPathLong | | |
xpath_number | XPathDouble | | |
xpath_short | XPathShort | | |
xpath_string | XPathString | | |