以下两份资料可以帮你避免这些问题,同时理顺学习的思路:
Spark机器学习所有的源代码,可提供任何人拿来与R语言作对比:
https://github.com/vivekmurugesan/experiments/tree/master/spark-ml
Docker容器的源代码,Spark和上述项目的包已预置在内,以供快速实施:
https://hub.docker.com/r/vivekmurugesan/spark-hadoop/ Docker容器中已事先安装Apache Hadoop,并且在伪分布式环境下运行。这可以将大容量文件放进分布式文件系统来测试Spark。通过从分布式文件系统加载记录,可以很轻松地来创建RDD实例。
产能和精度
人们会使用不同的指标来衡量这些工具的好坏。对我来说,精准度和产能是决定性的因素。
大家总是喜欢R多过于Spark机器学习,是因为经验学习曲线。他们最终只能选择在R上采用少量的样本数据,是因为R在大数据量的样本上花了太多时间,而这也影响了整个系统的性能。
对我来说,用少量的样本数据是解决不了问题的,因为少量样本根本代表不了整体(至少在大部分情况下是这样)。所以说,如果你使用了少量样本,就是在精度上选择了妥协。
一旦你抛弃了少量样本,就归结到了生产性能的问题。机器学习的问题本质上就是迭代的问题。如果每次迭代都花费很久的话,那么完工时间就会延长。可是,如果每次迭代只用一点时间的话,那么留给你敲代码的时间就会多一些了。
结论
R语言包含了统计计算的库和像ggplot2这样可视化分析的库,所以它不可能被完全废弃,而且它所带来的挖掘数据和统计汇总的能力是毋庸置疑的。
但是,当遇到在大数据集上构建模型的问题时,我们应该去挖掘一些像Spark ML的工具。Spark也提供R的包,SparkR可以在分布式数据集上应用R。
最好在你的“数据军营”中多放点工具,因为你不知道在“打仗”的时候会遇到什么。因此,是时候从过去的R时代迈入Spark ML的新时代了。
原文:Tools in the data armoury: R vs Spark
湘ICP备2022002427号-10湘公网安备:43070202000427号
© 2013~2019 haote.com 好特网