Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Converte uma coluna que contém entradas aninhadas (array/map/struct) em variantes, onde os mapas e structs são convertidos em objetos variantes que não são ordenados, ao contrário dos structs SQL. Os mapas de entrada só podem ter chaves de string.
Sintaxe
from pyspark.sql import functions as sf
sf.to_variant_object(col)
Parâmetros
| Parâmetro | Tipo | Description |
|---|---|---|
col |
pyspark.sql.Column ou str |
Uma coluna com um esquema aninhado ou nome de coluna. |
Devoluções
pyspark.sql.Column: uma nova coluna de VariantType.
Examples
Exemplo 1: Converter um array contendo uma estrutura aninhada numa variante
from pyspark.sql import functions as sf
from pyspark.sql.types import ArrayType, StructType, StructField, StringType, MapType
schema = StructType([
StructField("i", StringType(), True),
StructField("v", ArrayType(StructType([
StructField("a", MapType(StringType(), StringType()), True)
]), True))
])
data = [("1", [{"a": {"b": 2}}])]
df = spark.createDataFrame(data, schema)
df.select(sf.to_variant_object(df.v))
DataFrame[to_variant_object(v): variant]
df.select(sf.to_variant_object(df.v)).show(truncate=False)
+--------------------+
|to_variant_object(v)|
+--------------------+
|[{"a":{"b":"2"}}] |
+--------------------+