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 serialize할 데이터 열입니다.
jsonFormatSchema str, 선택 사항 JSON 문자열 형식의 사용자 지정 출력 Avro 스키마입니다.
subject pyspark.sql.Column 또는 str, 선택 사항 데이터가 속한 스키마 레지스트리의 주체입니다.
schemaRegistryAddress str, 선택 사항 스키마 레지스트리의 주소(호스트 및 포트)입니다.
options dict, 선택 사항 Avro 레코드가 serialize되는 방법과 스키마 레지스트리 클라이언트에 대한 구성을 제어하는 옵션입니다.

Returns

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] |
+--------+