分享

Spark 高级分析:第二章第1节Scala和数据科学家

feilong 2017-9-22 07:32:55 发表于 入门帮助 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 4679
问题导读
1.数据科学项目的第一步是什么?

2.Spark是用什么语言编写的?是否可以使用R/Python调用Spark?
3.哪些做法能使你更好地理解Spark?




上一篇:Spark 高级分析:第一章第3节关于本书
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22718&extra=

第二章 使用Scala和Spark进行数据分析

乔希·威尔斯

        如果你对无聊感到无动于衷,那么你根本无法完成任何事情。               ----大卫·福斯特·华莱士

       数据清理是数据科学项目的第一步,而且往往是最重要的。 许多聪明的分析已经被撤销,因为所分析的数据具有基本的质量问题或潜在的伪像,偏向于分析或导致数据科学家看到的东西并不真正存在。

       尽管其重要性,但大多数教科书和数据科学课程都不包括数据清理或只简单提及。对此的解释很简单:清理数据真的很无聊。你必须做的这些繁琐乏味的工作才能接触到的真正的机器学习算法,而这些工作会让你一直疲于应付新问题。许多新的数据科学家倾向于超越它,以将其数据转化为最低限度的可接受状态,以至于只有在应用(潜在的计算密集型)算法并获得无意义的答案作为输出后才发现数据具有重大的质量问题。

       每个人都曾听到这样的说法:无用输入,无用输出,但是还有一些更有害的东西:从看似合理的有重大的(但不是乍一看)的质量问题的数据集中获得看似合理的答案。根据这种错误得出重要结论是数据科学家被解雇的原因之一。

      作为数据科学家开发的最重要的能力之一是能够在数据分析的每个阶段发现有趣和有价值的问题。在分析项目中早期应用的技能和智力越多,对最终产品的信心越强。

     当然,常说:数据科学相当于告诉孩子吃蔬菜。 使用像Spark这样的新工具,让我们构建花哨的机器学习算法,开发流式数据处理引擎,并分析网络规模的图表,这是非常有趣的。那么,有什么更好的方法可以让你使用Spark和Scala来处理数据,而不是进行数据清理?

第1节

      大多数数据科学家有一个喜欢的工具,如R或Python,用于执行交互式数据加工和分析。 尽管他们愿意使用其他的开发环境,但数据科学家倾向于依赖自己喜欢的工具,并且一直在寻找一种方法来实现在任何能用的地方都使用这找那个工具。向他们介绍具有新语法和新的学习模式的新工具是非常具有挑战性的。

1.无阻抗失配。每当我们使用R或Python运行算法时是在基于JVM的语言(如Scala)之上,我们必须做一些工作来传递代码和数据跨越不同的环境,而在转换的过程中常常会出现缺失。但在Spark中编写数据分析算法时使用Scala API,你可以更加自信,你的程序将按预期运行。

3.这将有助于你了解Spark的理念。即使是通过Python或R使用Spark,APIs仍反映了Spark的继承自Scala开发语言的基本计算思想。如果你知道如何通过Scala使用Spark,即使你主使用其他语言,你也会对系统有一个更好的理解,将会更好地“思考Spark”。

      学习如何通过Scala使用Spark还有另一个优点,但很难阐述其与其他任何数据分析工具的不同。 如果你使用R或Python从数据库中提取数据,分析数据,则可以使用SQL之类的语言来检索所需的信息,然后切换到R或Python以便操作和可视化数据。你曾经使用一种语言(SQL)来检索和操纵存储在远程集群的大量数据,并且使用其他语言(Python / R)操作和可视化存储在你自己的计算机上的信息。如果你已经做足够长的时间,那么你无需考虑更多了。

      使用Spark和Scala,经验是不同的,因为你使用的是相同的语言。你编写Scala以通过Spark从集群中检索数据。你编写Scala以在本机上操作该数据。 然后 - 这是一个非常整洁的部分 - 你可以将Scala代码发送到集群中,以便存储在集群中的数据可以执行与本机上完全相同的转换。无论数据本身存储和处理的位置如何,在单一环境中如何变革性地进行所有数据发送和分析是很困难的。 这是你必须体验到的一些事情,让自己明白,我们想确保我们的方法捕获了当我们第一次使用Spark时感觉到的一些同样的奇妙感觉。

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条