繁体   English   中英

pyspark.sql'pandas_udf()'函数之前的冒号(:)?

[英]Colon (:) before pyspark.sql 'pandas_udf()' function?

在pyspark.sql模块的apply()文档中,提供了在函数“ pandas_udf()”之前包含冒号的代码。 这是什么意思,为什么包括在内? 我在尝试运行该行时遇到语法错误。 文档中的代码如下。

这是文档链接

运行代码显然给了我一个语法错误。 还尝试了去除结肠,但没有运气。

from pyspark.sql.functions import pandas_udf, PandasUDFType
df = spark.createDataFrame(
    [(1, 1.0), (1, 2.0), (2, 3.0), (2, 5.0), (2, 10.0)],
    ("id", "v"))
:pandas_udf("id long, v double", PandasUDFType.GROUPED_MAP)  # doctest: +SKIP
def normalize(pdf):
    v = pdf.v
    return pdf.assign(v=(v - v.mean()) / v.std())`enter code here`
df.groupby("id").apply(normalize).show()  # doctest: +SKIP

这是文档错误。 pandas_udf旨在用作装饰器,因此应在@之前而不是:

这个例子应该工作:

from pyspark.sql.functions import pandas_udf, PandasUDFType

# Use pandas_udf to define a Pandas UDF
@pandas_udf('double', PandasUDFType.SCALAR)
# Input/output are both a pandas.Series of doubles

def pandas_plus_one(v):
    return v + 1

df.withColumn('v2', pandas_plus_one(df.v))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM