Apache spark RDD、数据帧、Spark SQL:360度比较?

Apache spark RDD、数据帧、Spark SQL:360度比较?,apache-spark,pyspark,apache-spark-sql,Apache Spark,Pyspark,Apache Spark Sql,同龄人, 我们需要使用Spark 2.1标准化几乎所有的SQL工作负载处理。我们目前正在讨论三种选择:RDD、DataFrames和SparkSQL。经过一天的梳理,我在下面对stackoverlow、报纸和网络进行了比较。我在桌子上寻求反馈,特别是在性能和记忆力方面。提前感谢 +---------------------------+------------------+-----------------+--------------------------------------+ |

同龄人,

我们需要使用Spark 2.1标准化几乎所有的SQL工作负载处理。我们目前正在讨论三种选择:RDD、DataFrames和SparkSQL。经过一天的梳理,我在下面对stackoverlow、报纸和网络进行了比较。我在桌子上寻求反馈,特别是在性能和记忆力方面。提前感谢

+---------------------------+------------------+-----------------+--------------------------------------+ | Feature | RDD | Data Frame (DF) | Spark SQL | +---------------------------+------------------+-----------------+--------------------------------------+ | First-class Spark citizen | Yes | Yes | Yes | | Native? [4] | Core abstraction | API | Module | | Generation [5] | 1st | 2nd | 3rd | | Abstraction [4,5, | Low-level API | Data processing | SQL-based | | Ansi standard SQL | None | Some | near-ansi [5] | | Optimization | None | Catalyst [9] | Catalyst [9] | | Performance [3,4,8 | Mix views | Mix views | Mix Views | | Memory | ? | ? | ? | | Programming speed | Slow | Fast | Faster if dealing with SQL workloads | +---------------------------+------------------+-----------------+--------------------------------------+ 编辑以解释问题的不同之处,而不是重复:


谢谢你提到姐妹问题。虽然我看到了详细的讨论和一些重叠,但我看到的是最小的(否):
(a) 关于SparkSQL的讨论,
(b) 三种方法的内存消耗比较,以及
(c) Spark 2.x上的性能比较(在我的问题中更新)。它引用了[4](有用),它基于spark 1.6

我认为我修改后的问题仍然没有答案。请求作为副本解冻。

我个人的意见:

  • 就性能而言,您应该使用数据帧/数据集或Spark SQL。RDD不是由和优化的
  • 就灵活性而言,我认为使用数据帧API将使您具有更高的可读性,并且比SQL更具动态性,特别是使用Scala或Python,尽管您可以根据需要混合使用它们
  • 只有当您想迁移配置单元工作负载或者通过ODBC连接到BI工具的spark thrift server时,我才会使用SQL

感谢您提及姐妹问题。虽然我看到了详细的讨论和一些重叠,但我看到的是最小的(没有?)(a)关于SparkSQL的讨论,(b)关于三种方法的内存消耗的比较,以及(c)Spark 2.x的性能比较(在我的问题中更新)。它引用了基于spark 1.6的[4](有用),我认为我修改后的问题仍然没有得到回答可读性是主观的,我发现SQLs比任何API都能被更广泛的用户理解。
[3] Introducing DataFrames in Apache Spark for Large Scale Data Science by data bricks   
[4] Spark RDDs vs DataFrames vs SparkSQL by Hortonworks  
[5] A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets When to use them and why by data bricks  
[6] Introducing Apache Spark 2.0 by data bricks  
[7] Spark RDD vs Spark SQL Performance comparison using Spark Java APIs  
[8] Spark sql queries vs dataframe functions on Stackoverflow  
[9] Spark SQL: Relational Data Processing in Spark by data bricks, MIT, UC Berkeley