本文簡要介紹
pyspark.pandas.Series.pandas_on_spark.transform_batch
的用法。用法:
pandas_on_spark.transform_batch(func: Callable[[…], pandas.core.series.Series], *args: Any, **kwargs: Any) → Series
使用帶有 pandas Series 並輸出 pandas Series 的函數轉換數據。賦予函數的 pandas Series 是內部使用的批處理。
另見Transform and apply a function。
注意
func
無法訪問整個輸入係列。 pandas-on-Spark 在內部將輸入係列拆分為多個批次,並在每個批次中多次調用func
。因此,諸如全局聚合之類的操作是不可能的。請參見下麵的示例。>>> # This case does not return the length of whole frame but of the batch internally ... # used. ... def length(pser) -> ps.Series[int]: ... return pd.Series([len(pser)] * len(pser)) ... >>> df = ps.DataFrame({'A': range(1000)}) >>> df.A.pandas_on_spark.transform_batch(length) c0 0 83 1 83 2 83 ...
注意
此 API 執行該函數一次以推斷可能昂貴的類型,例如,在聚合或排序後創建數據集時。
為避免這種情況,請在
func
中指定返回類型,例如,如下所示:>>> def plus_one(x) -> ps.Series[int]: ... return x + 1
- func:函數
應用於每個 pandas 框架的函數。
- *args:
要傳遞給 func 的位置參數。
- **kwargs:
要傳遞給 func 的關鍵字參數。
- DataFrame
參數:
返回:
例子:
>>> df = ps.DataFrame([(1, 2), (3, 4), (5, 6)], columns=['A', 'B']) >>> df A B 0 1 2 1 3 4 2 5 6
>>> def plus_one_func(pser) -> ps.Series[np.int64]: ... return pser + 1 >>> df.A.pandas_on_spark.transform_batch(plus_one_func) 0 2 1 4 2 6 Name: A, dtype: int64
您也可以省略類型提示,以便 pandas-on-Spark 推斷返回模式如下:
>>> df.A.pandas_on_spark.transform_batch(lambda pser: pser + 1) 0 2 1 4 2 6 Name: A, dtype: int64
您還可以指定額外的參數。
>>> def plus_one_func(pser, a, b, c=3) -> ps.Series[np.int64]: ... return pser + a + b + c >>> df.A.pandas_on_spark.transform_batch(plus_one_func, 1, b=2) 0 7 1 9 2 11 Name: A, dtype: int64
您還可以使用
np.ufunc
和內置函數作為輸入。>>> df.A.pandas_on_spark.transform_batch(np.add, 10) 0 11 1 13 2 15 Name: A, dtype: int64
>>> (df * -1).A.pandas_on_spark.transform_batch(abs) 0 1 1 3 2 5 Name: A, dtype: int64
相關用法
- Python pyspark Series.pad用法及代碼示例
- Python pyspark Series.plot.barh用法及代碼示例
- Python pyspark Series.plot.pie用法及代碼示例
- Python pyspark Series.plot.box用法及代碼示例
- Python pyspark Series.pipe用法及代碼示例
- Python pyspark Series.pop用法及代碼示例
- Python pyspark Series.plot.line用法及代碼示例
- Python pyspark Series.pow用法及代碼示例
- Python pyspark Series.plot.density用法及代碼示例
- Python pyspark Series.plot.hist用法及代碼示例
- Python pyspark Series.plot.area用法及代碼示例
- Python pyspark Series.pct_change用法及代碼示例
- Python pyspark Series.product用法及代碼示例
- Python pyspark Series.prod用法及代碼示例
- Python pyspark Series.plot.kde用法及代碼示例
- Python pyspark Series.plot.bar用法及代碼示例
- Python pyspark Series.asof用法及代碼示例
- Python pyspark Series.to_frame用法及代碼示例
- Python pyspark Series.rsub用法及代碼示例
- Python pyspark Series.mod用法及代碼示例
- Python pyspark Series.str.join用法及代碼示例
- Python pyspark Series.str.startswith用法及代碼示例
- Python pyspark Series.dt.is_quarter_end用法及代碼示例
- Python pyspark Series.dropna用法及代碼示例
- Python pyspark Series.sub用法及代碼示例
注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 pyspark.pandas.Series.pandas_on_spark.transform_batch。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。