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)- >ps。DataFrame(int]:…返回pd。DataFrame([len(pdf)]*len(pdf))…> > >df=ps。DataFrame({“一個”:範圍(1000年)})> > >df。pandas_on_spark。transform_batch(長度)c083年01 832 83年…
請注意
這個API函數執行一次來推斷的類型可能是非常昂貴的,例如,當聚合或排序後創建的數據集。
為了避免這種情況,指定返回類型
函數
例如,如下:> > >defplus_one(x)- >ps。DataFrame(int,(浮動,浮動]:…返回x+1
如果指定返回類型,輸出列名稱c0, c1, c2…cn。這些名稱映射到返回DataFrame按位置
函數
。指定列的名稱,您可以指定在NumPy複合類型樣式如下:
> > >defplus_one(x)- >ps。DataFrame((“指數”,int),((“一個”,浮動),(“b”,浮動)]]:…返回x+1
> > >pdf=pd。DataFrame({“一個”:(1,2,3),“b”:(3,4,5]})> > >defplus_one(x)- >ps。DataFrame(…(pdf。指數。的名字,pdf。指數。dtype),郵政編碼(pdf。dtypes,pdf。列):…返回x+1
- 參數
-
- 函數 函數
-
函數將每個熊貓幀。
- * args
-
位置參數傳遞給函數。
- * * kwargs
-
關鍵字參數傳遞給函數。
- 返回
-
- DataFrame或係列
另請參閱
-
DataFrame.pandas_on_spark.apply_batch
-
行/ columnwise操作。
-
Series.pandas_on_spark.transform_batch
-
變換搜索每個熊貓塊。
例子
> > >df=ps。DataFrame(((1,2),(3,4),(5,6)),列=(“一個”,“B”])> > >df一個B0 1 21 3 42 5 6
> > >defplus_one_func(pdf)- >ps。DataFrame(int,(int,int]:…返回pdf+1> > >df。pandas_on_spark。transform_batch(plus_one_func)c0 c10 2 31 4 52 6 7
> > >defplus_one_func(pdf)- >ps。DataFrame((“指數”,int),((“一個”,int),(“B”,int)]]:…返回pdf+1> > >df。pandas_on_spark。transform_batch(plus_one_func)一個B指數0 2 31 4 52 6 7
> > >defplus_one_func(pdf)- >ps。係列(int]:…返回pdf。B+1> > >df。pandas_on_spark。transform_batch(plus_one_func)0 31 - 52 7dtype: int64
你也可以忽略提示所以pandas-on-Spark推斷返回類型模式如下:
> > >df。pandas_on_spark。transform_batch(λpdf:pdf+1)一個B0 2 31 4 52 6 7
> > >(df*- - - - - -1)。pandas_on_spark。transform_batch(腹肌)一個B0 1 21 3 42 5 6
請注意,您不應該將索引。索引信息不會改變。
> > >df。pandas_on_spark。transform_batch(λpdf:pdf。B+1)0 31 - 52 7名稱:B, dtype: int64
您還可以指定額外的參數如下。
> > >df。pandas_on_spark。transform_batch(λpdf,一個,b,c:pdf。B+一個+b+c,1,2,c=3)0 81 102 12名稱:B, dtype: int64