pyspark.sql.avro.functions.from_avro¶
-
pyspark.sql.avro.functions。
from_avro
( 數據:ColumnOrName,jsonFormatSchema:str,選項:可選(Dict(str,str]]=沒有一個 )→pyspark.sql.column.Column¶ -
將二進製列Avro格式轉換成相應的催化劑。指定的模式必須匹配讀取數據,否則行為是未定義的:它可能會失敗或返回任意的結果。反序列化的數據兼容和演化模式,預期Avro avroSchema模式可以通過設置選項。
- 參數
-
-
數據
列
或str -
二進製列。
- jsonFormatSchema str
-
avro模式以JSON字符串格式。
- 選項 東西,可選
-
選項來控製如何解析Avro記錄。
-
數據
筆記
Avro內置,但因為火花2.4外部數據源模塊。請部署應用程序的部署部分按“Apache Avro數據源向導”。
例子
> > >從pyspark.sql進口行> > >從pyspark.sql.avro.functions進口from_avro,to_avro> > >數據=((1,行(年齡=2,的名字=“愛麗絲”)))> > >df=火花。createDataFrame(數據,(“關鍵”,“價值”))> > >avroDf=df。選擇(to_avro(df。價值)。別名(“avro”))> > >avroDf。收集()行(avro =中bytearray (b \ x00 \ x00 \ x04 \ x00 \ nAlice ')))
> > >jsonFormatSchema=“‘{“類型”:“記錄”,“名字”:“topLevelRecord”,“字段”:…[{“名稱”:“avro”,“類型”:[{“類型”:“記錄”,“名字”:“價值”、“名稱”:“topLevelRecord”,…“字段”:[{“名稱”:“年齡”,“類型”:(“長”、“零”)},…{" name ": "名稱”、“類型”:[“字符串”,“零”]}},“零”]}]}”> > >avroDf。選擇(from_avro(avroDf。avro,jsonFormatSchema)。別名(“價值”))。收集()行(value =行(avro =行(= 2歲的名字=“愛麗絲”))))