pyspark.sql.functions.try_to_binary#
- pyspark.sql.functions.try_to_binary(col, format=None)[source]#
This is a special version of to_binary that performs the same operation, but returns a NULL value instead of raising an error if the conversion cannot be performed.
New in version 3.5.0.
- Parameters
Examples
Example 1: Convert string to a binary with encoding specified
>>> import pyspark.sql.functions as sf >>> df = spark.createDataFrame([("abc",)], ["e"]) >>> df.select(sf.try_to_binary(df.e, sf.lit("utf-8")).alias('r')).collect() [Row(r=bytearray(b'abc'))]
Example 2: Convert string to a timestamp without encoding specified
>>> import pyspark.sql.functions as sf >>> df = spark.createDataFrame([("414243",)], ["e"]) >>> df.select(sf.try_to_binary(df.e).alias('r')).collect() [Row(r=bytearray(b'ABC'))]
Example 3: Converion failure results in NULL when ANSI mode is on
>>> import pyspark.sql.functions as sf >>> origin = spark.conf.get("spark.sql.ansi.enabled") >>> spark.conf.set("spark.sql.ansi.enabled", "true") >>> try: ... df = spark.range(1) ... df.select(sf.try_to_binary(sf.lit("malformed"), sf.lit("hex"))).show() ... finally: ... spark.conf.set("spark.sql.ansi.enabled", origin) +-----------------------------+ |try_to_binary(malformed, hex)| +-----------------------------+ | NULL| +-----------------------------+