相当于 Scala Dataset#transform 方法的 Pyspark 变换方法

Pow*_*ers 6 apache-spark apache-spark-sql pyspark apache-spark-dataset

Spark Scala API 有一个Dataset#transform方法可以轻松链接自定义 DataFrame 转换,如下所示:

val weirdDf = df
  .transform(myFirstCustomTransformation)
  .transform(anotherCustomTransformation)
Run Code Online (Sandbox Code Playgroud)

在文档中没有看到pyspark的等效transform方法。

是否有 PySpark 方式来链接自定义转换?

如果没有,如何对pyspark.sql.DataFrame类进行猴子修补以添加transform方法?

更新

PySpark 3.0 开始,transform 方法被添加到 PySpark中。

hi-*_*zir 9

执行:

from pyspark.sql.dataframe import DataFrame

def transform(self, f):
    return f(self)

DataFrame.transform = transform
Run Code Online (Sandbox Code Playgroud)

用法:

spark.range(1).transform(lambda df: df.selectExpr("id * 2"))
Run Code Online (Sandbox Code Playgroud)