在Spark中加入大量维度的方法

时间:2016-10-15 08:51:40

标签: apache-spark apache-spark-sql

我需要有关使用Spark将维度信息与事务数据相关联的帮助。

我将数据存储在大约200列的拼花文件中。其中大约100个是尺寸' IDS。在总维度中,值在关系数据库中使用大约200GB,并且值随时间变化非常快。

如何在聚合期间将这些维度与事务数据相关联。聚合脚本是动态的,它们可以变化,例如可以使用20个维度或仅使用一个维度。我可以将所有维度值加载到hdfs,并进行连接。但是很多连接都很慢。

使用Hive我曾经使用自定义udfs,它从特定维度id的sql数据库维度值中检索。在udfs中使用了本地Guava缓存,因此如果值计数不超过缓存限制,则每个mapper / reducer offten仅用于生成一个请求。在Spark中使用这些udf而不进行任何修改会大大降低查询性能。我可以尝试用spark udfs重写它,但我不知道是否值得尝试?可能这种做法不适合火花。

使用spark执行此操作的常用方法是什么?

0 个答案:

没有答案