try_ip_as_binary
S’applique à : Databricks Runtime 18.2 et versions ultérieures
Bêta
Cette fonctionnalité est en Bêta. Les administrateurs du Workspace peuvent contrôler l'accès à cette fonctionnalité à partir de la page Previews . Consultez Gérer les aperçus Databricks.
Renvoie la représentation binaire canonique d'une adresse IP ou d'un bloc CIDR. Retourne None au lieu de lever une erreur si l'entrée est invalide.
Pour la fonction SQL correspondante, consultez la fonctiontry_ip_as_binary.
Syntaxe
from pyspark.databricks.sql import functions as dbf
dbf.try_ip_as_binary(col=<col>)
parameter
parameter | Type | Description |
|---|---|---|
|
| Une valeur STRING ou BINARY représentant une adresse IPv4 ou IPv6 ou un bloc CIDR valide. |
Exemples
Exemple 1 : Convertir une adresse IPv4 en binaire.
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')]
Exemple 2 : Convertir une adresse IPv6 en binaire.
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')]
Exemple 3 : Convertir un bloc CIDR en binaire.
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')]
Exemple 4 : L'entrée non valide renvoie 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)]
**Exemple 5** : None l'entrée None renvoie.
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)]