冒号 (:) 在 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))
在 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))