什么是SparkSQL?

时间:2016-01-18 03:34:58

标签: apache-spark mapreduce apache-spark-sql bigdata

我对这个"大数据"的整个世界都很陌生。科技,最近开始阅读Spark。有一点不断出现的是SparkSQL,但我始终无法理解它究竟是什么。

是否应该将SQL查询转换为对您提供的数据进行操作的MapReduce?但就功能而言,数据帧本质上已经是SQL表吗?

或者它是否允许您连接到SQL数据库并使用Spark查询它?在这种情况下,Spark的重点在于什么 - 为什么不直接使用SQL?或者您可以将结构化SQL数据与平面数据结合使用吗?

同样,我强调我对所有这些都是新手,可能会或可能不会说出我的屁股:)。所以,如果你发现我明显误解了某些事情,请纠正我并原谅我。

2 个答案:

答案 0 :(得分:2)

你的第一个答案基本上是正确的,它是Spark中的一个API,你可以在SQL中编写查询,它们将转换为并行化的Spark作业(Spark可以执行比map和reduce更复杂的操作类型)。 Spark Data框架实际上只是这个API的包装器,它只是访问API的另一种方式,具体取决于您是否更习惯使用SQL或Python / Scala进行编码。

答案 1 :(得分:0)

火花

Spark 是一个框架或非常大的组件集,用于对大数据进行可扩展,高效的分析。

例如:人们每天都会向YouTube上传1 PB的视频。现在,从磁盘读取1TB的时间大约为3小时,每秒100兆字节。这实际上是相当长的时间(廉价的磁盘无法帮助我们)。因此,我们面临的挑战是一台机器无法处理甚至存储所有数据。 因此,我们的解决方案是通过机器群集分布式数据

  

DataFrames 是Spark中的主要抽象。

我们可以从文本文件,Json文件,Hadoop分布式文件系统,Apache Parquet或Hypertable或Amazon S3文件,Apache HBase构建数据框,然后执行一些操作,对其进行转换,无论数据来自何处。

Spark Sql

Spark SQL 是用于结构化数据处理的Spark模块。如文档页面here所述。

因此,Spark SQL的一个好处是它允许我们使用SQL语法从许多数据源查询结构化数据,并提供许多其他可能性。 我认为正因如此,我们不直接使用SQL。