【发布时间】:2018-05-04 04:01:46
【问题描述】:
我正在尝试使用 Grouped Map Pandas UDF 在 PySpark 中运行指数加权移动平均线。但它不起作用:
def ExpMA(myData):
from pyspark.sql.functions import pandas_udf
from pyspark.sql.functions import PandasUDFType
from pyspark.sql import SQLContext
df = myData
group_col = 'Name'
sort_col = 'Date'
schema = df.select(group_col, sort_col,'count').schema
print(schema)
@pandas_udf(schema, PandasUDFType.GROUPED_MAP)
def ema(pdf):
Model = pd.DataFrame(pdf.apply(lambda x: x['count'].ewm(span=5, min_periods=1).mean()))
return Model
data = df.groupby('Name').apply(ema)
return data
我也尝试在没有 Pandas udf 的情况下运行它,只是在 PySpark 中编写 ewma 方程,但问题是 ewma 方程包含当前 ewma 的滞后。
【问题讨论】:
标签: python apache-spark pyspark apache-spark-sql