我有来自Kafka流的以下json
[{timestamp: 2019-01-01T00:00:00z, id:A, value: 3.15}
{timestamp: 2019-01-01T00:00:00z, id:B, value: 0.32}
{timestamp: 2019-01-01T00:00:00z, id:C, value: 1.75}
{timestamp: 2019-01-01T00:00:00z, id:D, value: 2.20}
{timestamp: 2019-01-01T00:00:10z, id:A, value: 2.05}
{timestamp: 2019-01-01T00:00:10z, id:B, value: 0.01}
{timestamp: 2019-01-01T00:00:10z, id:C, value: 3.55}
{timestamp: 2019-01-01T00:00:10z, id:D, value: 1.92}] ...
我的最终目标是计算这些变量之间的相关性,并且具有类似以下内容:
+--------------------+-------+
|element 1| element 2| corr|
+--------------------+-------+
| A| A| 1.0|
| A| B| 0.98|
| A| D| 0.02|
| B| B| 1.0|
| B| C| 0.45|
+--------------------+-------+
...
我可以使用传统方式成功地做到这一点,在传统方式中,我可以轻松地操纵和旋转数据框。问题是我正在转向结构化流式传输,但是它不允许我进行这种聚合。
我一直在尝试转换,但是我能得到的最好的是一个半透视表,其中[id]是属于该特定id的元素的数组。
+---------+-----+----+----+----+
| id| A| B| C| D|
+---------+-----+----+----+----+
| A| [A]| | | |
| B| | [B]| | |
| C| | | [C]| |
| D| | | | [D]|
+---------+-----+----+----+----+
...
我正在考虑的是现在将此数据帧下沉到CSV文件中,以便我可以读取它,并进行第二次汇总。问题是这是一个很大的数据框,我想用一个管道完成。
那么,您对如何从值流中获取相关矩阵有一个想法吗?