Apache Spark 1.3 发布,1.3 版本引入了期待已久的 DataFrame API,这是 Spark 的 RDD 抽象设计来简单快速支持大数据集的变革。同时在流转换 ML 和 SQL 的大量提升。
DateFrame API 示例:
<div class="line number1 index0 alt2"><code class="java plain"># Constructs a DataFrame from a JSON dataset.</code></div>
<div class="line number2 index1 alt1"><code class="java plain">users = context.load(</code><code class="java string">"s3n://path/to/users.json"</code><code class="java plain">, </code><code class="java string">"json"</code><code class="java plain">)</code></div>
<div class="line number3 index2 alt2"></div>
<div class="line number4 index3 alt1"><code class="java plain"># Create a </code><code class="java keyword">new</code> <code class="java plain">DataFrame that contains “young users” only</code></div>
<div class="line number5 index4 alt2"><code class="java plain">young = users.filter(users.age < </code><code class="java value">21</code><code class="java plain">)</code></div>
<div class="line number6 index5 alt1"></div>
<div class="line number7 index6 alt2"><code class="java plain"># Alternatively, using Pandas-like syntax</code></div>
<div class="line number8 index7 alt1"><code class="java plain">young = users[users.age < </code><code class="java value">21</code><code class="java plain">]</code></div>
<div class="line number9 index8 alt2"></div>
<div class="line number10 index9 alt1"><code class="java plain"># DataFrame's support existing RDD operators</code></div>
<div class="line number11 index10 alt2"><code class="java plain">print(</code><code class="java string">"Young users: "</code> <code class="java plain">+ young.count())</code></div>
详细介绍请看发行说明。
Spark 是一种与 hadoop”>Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
Spark 是在 scala”>Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。
尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoo 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。