我在Spark 2.0上使用Pyspark遇到了这个问题,我似乎无法弄清楚我是否需要进一步重塑数据,或者我是否可以关联DataFrame / RowRDD中每个单元格中的向量。
我有一个我正在使用的RowRDD,看起来像这样:
[Row(aa_product=1, apr=[45, 58, 25, 3, 54, 28], may=[91, 5, 15, 93, 78, 98]),
Row(aa_product=2, apr=[64, 69, 93, 75, 59, 2], may=[27, 6, 15, 11, 33, 2]),
Row(aa_product=3, apr=[27, 22, 95, 56, 76, 33], may=[70, 88, 24, 49, 33, 70]),
Row(aa_product=4, apr=[58, 10, 93, 93, 26, 56], may=[89, 47, 8, 94, 84, 89]),
Row(aa_product=5, apr=[15, 99, 55, 79, 33, 17], may=[70, 65, 13, 77, 92, 89])]
一年中的每个月都有其他列,它们都包含您在此处看到的整数列表。
以DataFrame形式:
+----------+--------------------+--------------------+
|aa_product| apr| may|
+----------+--------------------+--------------------+
| 1|[89, 53, 12, 61, ...|[58, 66, 27, 43, ...|
| 2|[73, 83, 61, 90, ...|[37, 89, 69, 11, ...|
| 3|[91, 13, 94, 69, ...|[48, 76, 54, 13, ...|
| 4|[66, 28, 7, 100, ...|[58, 57, 11, 14, ...|
| 5|[21, 58, 70, 52, ...|[87, 85, 43, 41, ...|
+----------+--------------------+--------------------+
我想要做的是在每个月将每个产品与其他产品相关联。因此,例如,将apr
中aa_product = 1
的向量与4月中产品2:5的向量相关联,以及每种产品的4月和5月向量之间的相关性。
我想出了如何将每个列表分解为它自己独特的product_month列,这最终将为我提供所需的解决方案,但该项目的规模使该解决方案变得令人望而却步。是否有可能以编程方式访问这些向量并将它们相互关联? RDD或DataFrame解决方案很好。
感谢您的帮助!