try_ip_as_binary

Область применения:check помечена да Databricks Runtime 18.2 и выше

Important

Эта функция доступна в бета-версии. Администраторы рабочей области могут управлять доступом к этой функции на странице "Предварительные версии ". См. статью "Управление предварительными версиями Azure Databricks".

Возвращает каноническое двоичное представление IP-адреса или блока CIDR. Возвращается None вместо того, чтобы вызывать ошибку, если входные данные недопустимы.

Соответствующая функция SQL см. в разделеtry_ip_as_binary "Функция".

Syntax

from pyspark.databricks.sql import functions as dbf

dbf.try_ip_as_binary(col=<col>)

Parameters

Parameter Тип Description
col pyspark.sql.Column или str Строковое или двоичное значение, представляющее допустимый IPv4-адрес или блок IPv6 или CIDR.

Примеры

Пример 1. Преобразование IPv4-адреса в двоичный файл.

from pyspark.databricks.sql import functions as dbf
from pyspark.sql.functions import hex
df = spark.createDataFrame([('192.168.1.1',)], ['ip'])
df.select(hex(dbf.try_ip_as_binary('ip')).alias('result')).collect()
[Row(result='C0A80101')]

Пример 2. Преобразование IPv6-адреса в двоичный файл.

from pyspark.databricks.sql import functions as dbf
from pyspark.sql.functions import hex
df = spark.createDataFrame([('2001:db8::1',)], ['ip'])
df.select(hex(dbf.try_ip_as_binary('ip')).alias('result')).collect()
[Row(result='20010DB8000000000000000000000001')]

Пример 3. Преобразование блока CIDR в двоичный файл.

from pyspark.databricks.sql import functions as dbf
from pyspark.sql.functions import hex
df = spark.createDataFrame([('192.168.1.5/24',)], ['cidr'])
df.select(hex(dbf.try_ip_as_binary('cidr')).alias('result')).collect()
[Row(result='C0A8010018')]

Пример 4. Возвращает Noneнедопустимые входные данные.

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('invalid.ip',)], ['ip'])
df.select(dbf.try_ip_as_binary('ip').alias('result')).collect()
[Row(result=None)]

Пример 5. None Возвращает Noneвходные данные.

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(None,)], 'ip: string')
df.select(dbf.try_ip_as_binary('ip').alias('result')).collect()
[Row(result=None)]