pyspark.pandas.extensions.register_dataframe_accessor¶
-
pyspark.pandas.extensions。
register_dataframe_accessor
( 的名字:str )→可調用的( (類型(T] ] ,類型(T] ] ¶ -
注冊自定義DataFrame訪問器
- 參數
-
- 的名字 str
-
注冊後名字調用時使用訪問器
- 返回
-
- 可調用的
-
一個類裝飾器。
另請參閱
-
register_series_accessor
-
注冊一個定製的訪問器係列對象
-
register_index_accessor
-
注冊自定義訪問器在索引對象
筆記
當你訪問,訪問器將initialiazed pandas-on-Spark對象用戶交互。訪問器的init方法應該攝取被訪問的對象。看到的例子init簽名。
在熊貓的API,如果數據傳遞給你的訪問器有一個不正確的dtype,提出建議
AttributeError
一致性的目的。在pandas-on-Spark,ValueError
更經常使用注釋當一個值的數據類型是意想不到的對於一個給定的方法/函數。最終可以結構這個但是你喜歡,但pandas-on-Spark可能會這樣做:
> > >ps。係列([“一個”,“b”])。dt…回溯(最近的電話):…ValueError:不能叫DatetimeMethods StringType類型()
例子
在你的庫代碼:
從pyspark.pandas.extensions進口register_dataframe_accessor@register_dataframe_accessor(“地理”)類GeoAccessor:def__init__(自我,pandas_on_spark_obj):自我。_obj=pandas_on_spark_obj#其他構造函數邏輯@ propertydef中心(自我):#返回這個DataFrame的地理中心點緯度=自我。_obj。緯度朗=自我。_obj。經度返回(浮動(朗。的意思是()),浮動(緯度。的意思是()))def情節(自我):#情節這個數組的數據在地圖上通過
然後,在一個ipython會話:
> > ># #如果訪問其他文件導入。> > >#從my_ext_lib GeoAccessor進口> > >psdf=ps。DataFrame({“經”:np。linspace(0,10),…“人肉搜索”:np。linspace(0,20.)})> > >psdf。地理。中心(5.0,10.0)> > >psdf。地理。情節()