我们什么时候应该使用Spark-sql,什么时候应该使用Spark RDD
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我们什么时候应该使用Spark-sql,什么时候应该使用Spark RDD相关的知识,希望对你有一定的参考价值。
在哪种情况下,我们应该首选spark RDD编写解决方案,在哪种情况下,我们应该选择使用spark-sql。我知道spark-sql可以提供更好的性能,并且最适合结构和半结构数据。但是在选择之间的Spark Rdd和spark-sql时,还有哪些其他因素需要我们考虑。
我没有太多理由仍然使用RDD。
假设您使用的是基于JVM的语言,则可以根据Spark文档使用混合了SparkSQL + RDD(DataFrame == DataSet [Row])的DataSet:
[数据集是Spark 1.6中添加的新接口,它具有RDD的优点(强类型输入,使用强大的lambda函数的能力)以及Spark SQL的优化执行引擎的优点。
问题是python不支持DataSet,因此,当您使用非结构化数据时,您将使用RDD并失去spark-sql优化。
我发现使用DF比使用DS更易于使用-后者仍然受到开发的限制。对pyspark的评论确实仍然有用。
RDD对于zipWithIndex仍然很方便,可以在项目上放置asc,连续的序列号。
DF / DS具有柱状存储,并且具有更好的Catalyst(Optimizer)支持。
此外,使用RDD的事情可能很痛苦,例如,如果需要联接两个以上的表,则联接需要键,值和多步骤联接。他们是遗产。问题在于互联网充满了遗产,因此RDD爵士乐也是如此。
RDDRDD是集群中数据的集合,它处理非结构化和结构化数据。它通常是处理数据的功能部分
DF数据框基本上是对象的二维数组,用于定义行和列中的数据。它类似于数据库中的关系表。数据框仅处理结构化数据
以上是关于我们什么时候应该使用Spark-sql,什么时候应该使用Spark RDD的主要内容,如果未能解决你的问题,请参考以下文章
我啥时候应该使用 GRUB_TIMEOUT 选项? [关闭]