Двоеточие (:) перед функцией 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