to_avro

列を Avro 形式のバイナリに変換します。

subjectschemaRegistryAddressの両方が指定されている場合、この関数は列をスキーマ レジストリ 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] |
+--------+