本文简要介绍
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。