当前位置: 首页 > 知识库问答 >
问题:

RDD,DataFrames,Spark SQL:360度比较?[副本]

俞新翰
2023-03-14

同行,

+---------------------------+------------------+-----------------+--------------------------------------+  
|          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 |  
+---------------------------+------------------+-----------------+--------------------------------------+  
[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

我认为我修改过的问题仍然没有答案。请求取消标记为重复项。

共有1个答案

马安邦
2023-03-14

我个人的看法:

  • 在性能方面,您应该使用DataFrames/DataSets或Spark SQL。RDD未通过Catalyst Optimizer和Wungsten Project进行优化。
  • 就灵活性而言,我认为使用Dataframe API将为您提供更多的可读性,并且比使用SQL(特别是使用Scala或Python),更具动态性,尽管如果您愿意,您可以将它们混合使用
  • 只有当您要迁移配置单元工作负载或通过ODBC从BI工具连接到spark thrift server时,我才会使用SQL
 类似资料:
  • 问题内容: 我在Pandas中有这个DataFrame(): 我想检查中是否存在来自另一个数据框()的任何行(所有列)。这里是: 我尝试使用一次搜索一行。我这样做是这样的: 但我收到此错误消息: 我也尝试使用: 但我收到此错误消息: 我也这样尝试过: 但是我到处都是,这是不正确的: 通过将其与另一个数据框的行进行比较,是否有可能在数据框中搜索一组行? 编辑:如果这些行中也存在行,是否可以删除行?

  • 我有两个不同的DataFrame:A、B。column事件有相似的数据,我正在使用这些数据来比较这两个DataFrames。我想给Dataframe A一个新列dfa.newContext#。 为此,我需要使用Event列。我想遍历Dataframe A以找到事件的匹配项,并将dfb.context#分配给dfa.newcontext# 我认为循环是最好的方法,因为我有一些条件需要检查。 这可能要

  • 我试图插入和更新MySql上使用SparkSQLDataFrames和JDBC连接的一些数据。 我已经成功地使用SaveMode插入新数据。追加。有没有办法从SparkSQL更新MySql Table中已经存在的数据? 我要插入的代码是: 如果我切换到保存模式。覆盖它会删除完整的表并创建一个新表,我正在寻找MySql中提供的类似“ON DUPLICATE KEY UPDATE”的内容

  • 问题内容: 在对某些功能进行单元测试的上下文中,我试图使用python pandas建立2个DataFrames的相等性: 鉴于我正在尝试针对的完整测试(包括职位),我在做什么错? 比较包含s的Series / DataFrames相等性的最简单方法是什么? 问题答案: 您可以将assert_frame_equals与check_names = False一起使用(以免检查索引/列名称),如果它们

  • 我正在上编程入门课,不知什么原因,我对如何从这里开始有点困惑。基本上,提示是比较用户输入的三个数字,看看第一个数字是否在最后两个数字之间。 如你所见,我不知道如何在第一个函数中得到比较函数。任何帮助都非常感谢!

  • 此代码给出输出ELSE 此代码给出的输出是: 虽然两个程序看起来都一样,但为什么输出有差异呢?为什么会这样?