【发布时间】:2020-07-09 19:05:00
【问题描述】:
有一阵子,我一直在寻找如何为 PySpark DF 一次重命名多个列,结果遇到了如下情况:
import pyspark
def rename_sdf(df, mapper={}, **kwargs_mapper):
# Do something
# return something
pyspark.sql.dataframe.DataFrame.rename = rename_sdf
我对通过赋值语句将方法添加到 pyspark.DataFrame 类的最后一点感兴趣。 问题是,我正在创建一个 Github 存储库来存储我所有的函数和 ETL,我认为如果我可以应用上面显示的逻辑,那么创建一个 __init__.py 模块将非常容易,其中我实例化了我的所有功能,例如:
from funcs import *
pyspark.sql.dataframe.DataFrame.func1 = func1
pyspark.sql.dataframe.DataFrame.func2 = func2
.
.
.
pyspark.sql.dataframe.DataFrame.funcN = funcN
我想我的问题是:
这有用吗?对性能有好处吗?这是错的吗?它不是 Pythonic 的吗?
【问题讨论】:
标签: python pandas dataframe oop pyspark