列を Avro 形式のバイナリに変換します。
subjectとschemaRegistryAddressの両方が指定されている場合、この関数は列をスキーマ レジストリ Avro 形式のバイナリに変換します。 入力データ スキーマがスキーマ レジストリの特定のサブジェクトに登録されている必要があります。または、実行時にクエリが失敗します。
構文
from pyspark.sql.avro.functions import to_avro
to_avro(data, jsonFormatSchema=None, subject=None, schemaRegistryAddress=None, options=None)
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
data |
pyspark.sql.Column または str |
シリアル化するデータ列。 |
jsonFormatSchema |
str、省略可能 | JSON 文字列形式のユーザー指定の出力 Avro スキーマ。 |
subject |
pyspark.sql.Column または str、省略可能 |
データが属するスキーマ レジストリのサブジェクト。 |
schemaRegistryAddress |
str、省略可能 | スキーマ レジストリのアドレス (ホストとポート)。 |
options |
dict、省略可能 | Avro レコードのシリアル化方法とスキーマ レジストリ クライアントの構成を制御するオプション。 |
返品
pyspark.sql.Column: Avro でエンコードされたバイナリ データを含む新しい列。
例示
例 1: 文字列列を Avro バイナリ形式に変換する
from pyspark.sql.avro.functions import to_avro
data = ['SPADES']
df = spark.createDataFrame(data, "string")
df.select(to_avro(df.value).alias("avro")).show(truncate=False)
+--------------------+
|avro |
+--------------------+
|[00 0C 53 50 41 4...|
+--------------------+
例 2: カスタム JSON スキーマを使用して文字列列を Avro に変換する
from pyspark.sql.avro.functions import to_avro
data = ['SPADES']
df = spark.createDataFrame(data, "string")
json_format_schema = '''["null", {"type": "enum", "name": "value",
"symbols": ["SPADES", "HEARTS", "DIAMONDS", "CLUBS"]}]'''
df.select(to_avro(df.value, json_format_schema).alias("avro")).show(truncate=False)
+--------+
|avro |
+--------+
|[02 00] |
+--------+