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

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レコードのシリアル化方法を制御するオプションと、スキーマレジストリクライアントの設定。

戻り値

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] |
+--------+
このページの見出し