pyspark.pandas.DataFrame.pandas_on_spark.apply_batch

pandas_on_spark。 apply_batch ( 函數:可調用的[[…],pandas.core.frame.DataFrame],arg遊戲:元組=(),* *kwds:任何 )→DataFrame

應用一個函數需要熊貓熊貓DataFrame DataFrame和輸出。熊貓DataFrame給一批內部使用的函數。

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

請注意

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

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

請注意

這個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
參數
函數 函數

功能適用於每個熊貓幀。

arg遊戲 元組

位置參數傳遞函數除了數組/係列。

* * kwds

增加關鍵字參數通過關鍵字參數函數

返回
DataFrame

另請參閱

DataFrame.apply

行/ columnwise操作。

DataFrame.applymap

elementwise操作。

DataFrame.aggregate

隻有執行聚合類型操作。

DataFrame.transform

隻有執行類型轉換操作。

Series.pandas_on_spark.transform_batch

變換搜索每個熊貓塊。

例子

> > >df=psDataFrame(((1,2),(3,4),(5,6)),=(“一個”,“B”])> > >df一個B0 1 21 3 42 5 6
> > >defquery_func(pdf)- >psDataFrame(int,(int,int]:返回pdf查詢(“= = 1”)> > >dfpandas_on_sparkapply_batch(query_func)c0 c10 1 2
> > >defquery_func(pdf)- >psDataFrame((“idx”,int),((“一個”,int),(“B”,int)]]:返回pdf查詢(“= = 1”)> > >dfpandas_on_sparkapply_batch(query_func)一個Bidx0 1 2

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

> > >dfpandas_on_sparkapply_batch(λpdf:pdf查詢(“= = 1”))一個B0 1 2

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

> > >def計算(pdf,y,z)- >psDataFrame(int,(int,int]:返回pdf* *y+z> > >dfpandas_on_sparkapply_batch(計算,arg遊戲=(10),z=20.)c0 c10 21 10441 59069 10485962 9765645 60466196

您還可以使用np.ufunc和內置函數作為輸入。

> > >dfpandas_on_sparkapply_batch(np添加,arg遊戲=(10,))一個B0 11 121 13 142 15 16
> > >(df*- - - - - -1)pandas_on_sparkapply_batch(腹肌)一個B0 1 21 3 42 5 6