我正在开发财务应用程序。目的是计算各种投资组合风险统计数据。第一个基本问题是: 我有一个具有以下结构的数千行数据集
Instrument Factor Weight
A F1 0.149386064
A F2 0.282444926
A F300 0.66216264
B F1 0.501194572
B F2 0.037874843
B F300 0.939051411
对于数据框中的每种工具,我需要通过使用将工具权重乘以BlockMatrix表示的协方差矩阵的矩阵乘法来计算系统风险。
实际计算并不困难,我已经完成了这一部分。我的问题是执行每种仪器的记录组计算的最有效的Scala / Spark方法是什么。
基本上我需要一些可以表示为
的东西 instrument_df.groupBy("Instrument").agg(CalculateRisk)
,其中CalculateRisk引用协方差矩阵,并获取每种工具的权重行