SparkSQL到底是什么?
What exactly is SparkSQL?
我对整个 "big data" 技术世界还很陌生,最近开始阅读有关 Spark 的内容。不断出现的一件事是 SparkSQL,但我一直无法理解它到底是什么。
是否应该将 SQL 查询转换为对您提供的数据进行操作的 MapReduce?但是,就功能而言,数据框本质上不是已经 SQL 表了吗?
或者是某种允许您连接到 SQL 数据库并使用 Spark 查询它的技术?在这种情况下,这里的 Spark 有什么意义——为什么不直接使用 SQL?还是您可以将结构化 SQL 数据与平面数据结合使用?
再次强调,我对所有这一切都很陌生,可能会也可能不会说出我的屁股:)。因此,如果您发现我明显误解了某些内容,请纠正我并原谅我。
你的第一个答案基本上是正确的,它是 Spark 中的一个 API,你可以在 SQL 中编写查询,它们将被转换为一个并行化的 Spark 作业(Spark 可以做更复杂的类型操作而不仅仅是 map 和 reduce)。 Spark 数据帧实际上只是这个 API 的包装器,它只是访问 API 的另一种方式,具体取决于您更喜欢在 SQL 还是 [=12] 中编码=].
火花
Spark 是一个框架或一组非常大的组件,用于对大数据进行可扩展、高效的分析。
例如:人们每天向 YouTube 上传 1 PB 的视频。现在,以每秒 100 兆字节的速度从磁盘读取 1 TB 大约需要三个小时。这实际上是相当长的时间(便宜的磁盘在这里帮不了我们)。所以我们面临的挑战是一台机器无法处理,甚至存储所有的数据。
所以我们的解决方案是在机器集群上分布式数据。
DataFrames are the primary abstraction in Spark.
我们可以从文本文件、Json 文件、Hadoop 分布式文件系统、Apache Parquet 或 Hypertable 或 Amazon S3 文件、Apache HBase 构建一个数据框,然后对其执行一些操作、转换,无论它位于何处数据来自.
火花Sql
Spark SQL是一个用于结构化数据处理的Spark模块。如文档页面 here.
所述
所以 Spark SQL 的好处之一是它允许我们使用 SQL 语法从许多数据源查询结构化数据,并提供许多其他可能性。
我认为这是我们不直接使用 SQL 的原因。
我对整个 "big data" 技术世界还很陌生,最近开始阅读有关 Spark 的内容。不断出现的一件事是 SparkSQL,但我一直无法理解它到底是什么。
是否应该将 SQL 查询转换为对您提供的数据进行操作的 MapReduce?但是,就功能而言,数据框本质上不是已经 SQL 表了吗?
或者是某种允许您连接到 SQL 数据库并使用 Spark 查询它的技术?在这种情况下,这里的 Spark 有什么意义——为什么不直接使用 SQL?还是您可以将结构化 SQL 数据与平面数据结合使用?
再次强调,我对所有这一切都很陌生,可能会也可能不会说出我的屁股:)。因此,如果您发现我明显误解了某些内容,请纠正我并原谅我。
你的第一个答案基本上是正确的,它是 Spark 中的一个 API,你可以在 SQL 中编写查询,它们将被转换为一个并行化的 Spark 作业(Spark 可以做更复杂的类型操作而不仅仅是 map 和 reduce)。 Spark 数据帧实际上只是这个 API 的包装器,它只是访问 API 的另一种方式,具体取决于您更喜欢在 SQL 还是 [=12] 中编码=].
火花
Spark 是一个框架或一组非常大的组件,用于对大数据进行可扩展、高效的分析。
例如:人们每天向 YouTube 上传 1 PB 的视频。现在,以每秒 100 兆字节的速度从磁盘读取 1 TB 大约需要三个小时。这实际上是相当长的时间(便宜的磁盘在这里帮不了我们)。所以我们面临的挑战是一台机器无法处理,甚至存储所有的数据。 所以我们的解决方案是在机器集群上分布式数据。
DataFrames are the primary abstraction in Spark.
我们可以从文本文件、Json 文件、Hadoop 分布式文件系统、Apache Parquet 或 Hypertable 或 Amazon S3 文件、Apache HBase 构建一个数据框,然后对其执行一些操作、转换,无论它位于何处数据来自.
火花Sql
Spark SQL是一个用于结构化数据处理的Spark模块。如文档页面 here.
所述所以 Spark SQL 的好处之一是它允许我们使用 SQL 语法从许多数据源查询结构化数据,并提供许多其他可能性。 我认为这是我们不直接使用 SQL 的原因。