我想使用 data.groupby.apply() 将函数应用于每个组的 Pyspark Dataframe 的每一行。
我使用了 Grouped Map Pandas UDF。但是我不知道如何向我的函数添加另一个参数。
我尝试使用参数作为一个全局变量,但功能不recongnize它(我的观点是pyspark数据框),
我也试过在这一问题提出的解决方案(大熊猫据帧)使用熊猫GROUPBY()+应用()的参数
@pandas_udf(schema,PandasUDFType.GROUPED_MAP)
def function(key,data, interval):
interval_df=interval.filter(interval["var"]==key).toPandas()
for value in interval_df:
#Apply some operations
return Data.groupBy("msn").apply(calc_diff, ('arg1'))
Run Code Online (Sandbox Code Playgroud)
或者
@pandas_udf(schema,PandasUDFType.GROUPED_MAP)
def function(key,data, interval):
interval_df=interval.filter(interval["var"]==key).toPandas()
for value in interval_df:
#Apply some operations
return Data.groupBy("msn").apply(lambda x: calc_diff(x,'arg1'))
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
ValueError: Invalid function: pandas_udfs with function type GROUPED_MAP 必须采用一个参数 (data) 或两个参数 (key, data)。
任何人都可以帮助我解决上述问题。
谢谢