当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pyspark register_index_accessor用法及代码示例


本文简要介绍 pyspark.pandas.extensions.register_index_accessor 的用法。

用法:

pyspark.pandas.extensions.register_index_accessor(name: str) → Callable[[Type[T]], Type[T]]

使用索引注册自定义访问器

参数

namestr

注册后调用访问者时使用的名称

返回

可调用的

类装饰器。

注意

访问时,您的访问器将使用用户正在与之交互的pandas-on-Spark 对象进行初始化。代码签名必须是:

def __init__(self, pandas_on_spark_obj):
    # constructor logic
...

在 pandas API 中,如果传递给您的访问器的数据具有不正确的 dtype,建议提高 AttributeError 以保持一致性。在pandas-on-Spark 中,ValueError 更常用于在给定方法/函数的值的数据类型意外时进行注释。

最终,您可以随意构建它,但 pandas-on-Spark 可能会执行以下操作:

>>> ps.Series(['a', 'b']).dt
...
Traceback (most recent call last):
    ...
ValueError: Cannot call DatetimeMethods on type StringType

例子

在您的库代码中:

from pyspark.pandas.extensions import register_index_accessor

@register_index_accessor("foo")
class CustomAccessor:

    def __init__(self, pandas_on_spark_obj):
        self._obj = pandas_on_spark_obj
        self.item = "baz"

    @property
    def bar(self):
        # return item value
        return self.item

然后,在 ipython 会话中:

>>> ## Import if the accessor is in the other file.
>>> # from my_ext_lib import CustomAccessor
>>> psdf = ps.DataFrame({"longitude": np.linspace(0,10),
...                     "latitude": np.linspace(0, 20)})
>>> psdf.index.foo.bar  
'baz'

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.pandas.extensions.register_index_accessor。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。