pyspark.sql.DataFrame.mapInArrow¶
-
DataFrame。
mapInArrow
( 函數:ArrowMapIterFunction,模式:聯盟(pyspark.sql.types.StructType,str] )→DataFrame¶ -
地圖批次在當前的迭代器
DataFrame
使用Python的本機函數和輸出PyArrow的RecordBatch,並返回結果DataFrame
。的函數應該采取一個迭代器pyarrow.RecordBatch年代和返回的另一個迭代器pyarrow.RecordBatch年代。所有列在一起作為一個迭代器的傳遞pyarrow.RecordBatch的函數和返回的迭代器pyarrow.RecordBatchs是作為相結合
DataFrame
。每一個pyarrow.RecordBatch大小可以控製的spark.sql.execution.arrow.maxRecordsPerBatch。- 參數
-
- 函數 函數
-
一個Python本機函數需要一個迭代器pyarrow.RecordBatch年代,和輸出迭代器pyarrow.RecordBatch年代。
-
模式
pyspark.sql.types.DataType
或str -
的返回類型函數在PySpark。值可以是
pyspark.sql.types.DataType
對象或DDL-formatted類型字符串。
筆記
這個API是不穩定的,對於開發人員。
例子
> > >進口pyarrow> > >df=火花。createDataFrame(((1,21),(2,30.)),(“id”,“年齡”))> > >deffilter_func(迭代器):…為批處理在迭代器:…pdf=批處理。to_pandas()…收益率pyarrow。RecordBatch。from_pandas(pdf(pdf。id= =1])> > >df。mapInArrow(filter_func,df。模式)。顯示()+ - - - + - - - +年齡| | | id+ - - - + - - - +| 1 | | 21日+ - - - + - - - +