/ 中存储网

Spark SQL数据源API:Spark平台的统一数据接入

2015-02-13 09:47:00 来源:中存储网

自从Spark 1.0版本的Spark SQL问世以来,它最常见的用途之一就是作为从Spark平台上面获取数据的一个渠道。

早期用户比较喜爱Spark SQL提供的从现有Apache Hive表以及流行的Parquet列式存储格式中读取数据的支持。之后,Spark SQL还增加了对其他格式的支持,比如说JSON。到了Spark 1.2 版本,我们已经迈出了下一步,让Spark的原生资源和更多的输入源进行整合集成。这些新的整合将随着纳入新的Spark SQL数据源API而成为可能。

数据源API通过Spark SQL提供了访问结构化数据的可插拔机制。数据源不仅仅有了简便的途径去进行数据转换并加入到Spark 平台。由API提供的密集的优化器集合意味着过滤和列修剪在很多情况下都会被运用于数据源。这些综合的优化极大地减少了需要处理的数据量,因此能够显著提高Spark的工作效率。

使用数据源和通过SQL访问他们一样简单(或者你喜爱的Spark语言)

CREATE TEMPORARY TABLE episodes
USING com.databricks.spark.avro
OPTIONS (path "episodes.avro")

数据源API的另外一个优点就是不管数据的来源如何,用户都能够通过Spark支持的所有语言来操作这些数据 。例如,那些用Scala实现的数据源,pySpark用户不需要其他的库开发者做任何额外的工作就可以使用。此外,Spark SQL可以很容易的使用单一接口访问不同数据源的数据。

总之,Spark 1.2 提供的这些功能进一步统一了大数据分析的解决方案。

尽管这个API刚开发出来不久,在此之上已经建立了好几个库,其中包括Apache Avro,Comma Separated Values(csv),甚至还有dBASE Table File Format (dbf)。

现在Spark 1.2 已经正式发布了,我们期望这个版本能够得到快速的发展。我们正在不断的努力,让Spark能够支持HBase,JDBC等。

访问Spark Packages 来获取最新的可用库列表。

对于有兴趣编写他们喜爱格式的库开发者,我们建议你参阅Apache Avro,学习示例源码或者观看聚会视频。

此外,敬请期待这个API的扩展。在Spark 1.3 版本中,我们希望增加对数据分区,持久化表以及可选用户指定模式的支持。

英文原文:databricks.com  作者:Michael Armbrust

本文由CODE翻译社区翻译,译者u011136668  ,审校你是只猪啊  ,参与翻译Spark系列文章,请点击这里