メインコンテンツまでスキップ

to_avro

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

subjectschemaRegistryAddress両方が指定された場合、関数は列をSchema Registry Avro形式のバイナリに変換します。入力データスキーマは、スキーマレジストリで指定された対象に登録されている必要があります。登録されていない場合、クエリは失敗します。 。

構文

Python
from pyspark.sql.avro.functions import to_avro

to_avro(data, jsonFormatSchema=None, subject=None, schemaRegistryAddress=None, options=None)

パラメーター

パラメーター

Type

説明

data

pyspark.sql.Column またはstr

シリアル化するデータ列。

jsonFormatSchema

文字列、オプション

JSON文字列形式のユーザー指定の出力Avroスキーマ。

subject

pyspark.sql.Column またはstr、オプション

スキーマレジストリにおける、データが属する主体。

schemaRegistryAddress

文字列、オプション

スキーマレジストリのアドレス(ホスト名とポート番号)。

options

辞書、オプション

Avroレコードのシリアル化方法を制御するオプションと、スキーマレジストリクライアントの設定。

パラメーター

Type

説明

data

pyspark.sql.Column またはstr

シリアル化するデータ列。

jsonFormatSchema

文字列、オプション

JSON文字列形式のユーザー指定の出力Avroスキーマ。

subject

pyspark.sql.Column またはstr、オプション

スキーマレジストリにおける、データが属する主体。

schemaRegistryAddress

文字列、オプション

スキーマレジストリのアドレス(ホスト名とポート番号)。

options

辞書、オプション

Avroレコードのシリアル化方法を制御するオプションと、スキーマレジストリクライアントの設定。

戻り値

pyspark.sql.ColumnAvroエンコードされたバイナリデータを含む新しい列。

例1 :文字列列をAvroバイナリ形式に変換する

Python
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)
Output
+--------------------+
|avro |
+--------------------+
|[00 0C 53 50 41 4...|
+--------------------+

例2 :カスタムJSONスキーマを使用して文字列列をAvroに変換する

Python
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)
Output
+--------+
|avro |
+--------+
|[02 00] |
+--------+
このページの見出し