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(avroDfavro,jsonFormatSchema)別名(“價值”))收集()行(value =行(avro =行(= 2歲的名字=“愛麗絲”))))