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