try_ip_as_binary

适用于:检查标记为是 Databricks Runtime 18.2 及更高版本

Important

此功能在 Beta 版中。 工作区管理员可以从 预览 页控制对此功能的访问。 请参阅 Manage 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

参数 类型 Description
col pyspark.sql.Columnstr 表示有效的 IPv4 或 IPv6 地址或 CIDR 块的 STRING 或 BINARY 值。

示例

示例 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)]

示例 5None 输入返回 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)]