pyspark.pandas.DataFrame.pandas_on_spark.transform_batch

pandas_on_spark。 transform_batch ( 函數:可調用的[[…],聯盟[pandas.core.frame.DataFrame, pandas.core.series.Series]],*arg遊戲:任何,* *kwargs:任何 )→聯盟(DataFrame,係列]

變換塊的功能需要熊貓熊貓DataFrame DataFrame和輸出。熊貓DataFrame給一批內部使用的函數。每個輸入和輸出的長度應該是相同的。

另請參閱轉換並應用一個函數

請注意

函數無法訪問整個輸入幀。pandas-on-Spark內部將輸入係列分為多個批次和調用函數多次與每一批。因此,隨著全球聚合之類的操作都是不可能的。看下麵的例子。

> > >#這裏不返回整個幀的長度,但是內部的批處理#使用。def長度(pdf)- >psDataFrame(int]:返回pdDataFrame([len(pdf)]*len(pdf))> > >df=psDataFrame({“一個”:範圍(1000年)})> > >dfpandas_on_sparktransform_batch(長度)c083年01 832 83年

請注意

這個API函數執行一次來推斷的類型可能是非常昂貴的,例如,當聚合或排序後創建的數據集。

為了避免這種情況,指定返回類型函數例如,如下:

> > >defplus_one(x)- >psDataFrame(int,(浮動,浮動]:返回x+1

如果指定返回類型,輸出列名稱c0, c1, c2…cn。這些名稱映射到返回DataFrame按位置函數

指定列的名稱,您可以指定在NumPy複合類型樣式如下:

> > >defplus_one(x)- >psDataFrame((“指數”,int),((“一個”,浮動),(“b”,浮動)]]:返回x+1
> > >pdf=pdDataFrame({“一個”:(1,2,3),“b”:(3,4,5]})> > >defplus_one(x)- >psDataFrame((pdf指數的名字,pdf指數dtype),郵政編碼(pdfdtypes,pdf):返回x+1
參數
函數 函數

函數將每個熊貓幀。

* args

位置參數傳遞給函數。

* * kwargs

關鍵字參數傳遞給函數。

返回
DataFrame或係列

另請參閱

DataFrame.pandas_on_spark.apply_batch

行/ columnwise操作。

Series.pandas_on_spark.transform_batch

變換搜索每個熊貓塊。

例子

> > >df=psDataFrame(((1,2),(3,4),(5,6)),=(“一個”,“B”])> > >df一個B0 1 21 3 42 5 6
> > >defplus_one_func(pdf)- >psDataFrame(int,(int,int]:返回pdf+1> > >dfpandas_on_sparktransform_batch(plus_one_func)c0 c10 2 31 4 52 6 7
> > >defplus_one_func(pdf)- >psDataFrame((“指數”,int),((“一個”,int),(“B”,int)]]:返回pdf+1> > >dfpandas_on_sparktransform_batch(plus_one_func)一個B指數0 2 31 4 52 6 7
> > >defplus_one_func(pdf)- >ps係列(int]:返回pdfB+1> > >dfpandas_on_sparktransform_batch(plus_one_func)0 31 - 52 7dtype: int64

你也可以忽略提示所以pandas-on-Spark推斷返回類型模式如下:

> > >dfpandas_on_sparktransform_batch(λpdf:pdf+1)一個B0 2 31 4 52 6 7
> > >(df*- - - - - -1)pandas_on_sparktransform_batch(腹肌)一個B0 1 21 3 42 5 6

請注意,您不應該將索引。索引信息不會改變。

> > >dfpandas_on_sparktransform_batch(λpdf:pdfB+1)0 31 - 52 7名稱:B, dtype: int64

您還可以指定額外的參數如下。

> > >dfpandas_on_sparktransform_batch(λpdf,一個,b,c:pdfB+一個+b+c,1,2,c=3)0 81 102 12名稱:B, dtype: int64