Двоеточие (:) преди функцията pyspark.sql 'pandas_udf()'?

В документацията за apply() от модула pyspark.sql беше предоставен код, който съдържа двоеточие преди функцията '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

person bw1997    schedule 24.07.2019    source източник
comment
Мисля, че това е грешка в документацията.   -  person John Gordon    schedule 24.07.2019


Отговори (1)


Това е грешка в документацията. 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))
person Pierre Gourseaud    schedule 25.07.2019