【发布时间】:2016-06-29 23:11:36
【问题描述】:
所以我有以下情况:
我有一项服务,可以对数据框中的参数进行一些计算。例如,我正在执行 describe() 操作。我通过 http-post (Array[String]+schema) 获取了参数,并通过 sql 上下文中的 read.json 函数将它们读入。
我可以在一个具有 10.000 个参数的大数据帧中获取它,也可以在只有一个参数的 10.000 个小数据帧中获取它。每个都有大约 12.000 行带有时间戳。 最后,我需要收集数据帧以将其发送到不同的服务以进行进一步计算。由于输入的创建方式,它会更容易参数化。
但我发现,在许多小型数据帧上进行收集/转换为 json 比在一个巨大的数据帧上要昂贵得多。 对于大数据帧大约需要 6 秒,所有小数据帧至少需要 20 秒。一方面,这似乎并不那么重要,但我想在这 10.000 个参数输入中的至少 3000 个上执行此操作。
为什么会这样?似乎不是计算的区别,而是收集一次和多次收集的区别。
【问题讨论】:
-
"好像不是计算上的区别,而是收集一次和多次收集的区别。"。是的。
标签: scala apache-spark spark-dataframe bigdata