何时在spark中使用rdd和Dataframe

9nvpjoqh  于 2021-05-29  发布在  Spark
关注(0)|答案(1)|浏览(322)

据我所知,rdd不能像dataframe那样利用spark对结构化数据的优化,它是否证明在处理非结构化数据源时我们应该使用rdd,而在处理结构化数据源(如数据库中的表)时我们应该使用dataframe?那么像json这样的半结构化数据呢?我们应该采用哪种抽象?rdd还是Dataframe?

bejyjqdl

bejyjqdl1#

rdd公司
rdd是一种遗产,将会消失。它不能像dfs、ds那样优化。它是基于行的。它仍然有1到2个方便的特性:a)如果通过zipwithindex放入升序序列号,则使用;2)如果您想要自定义分区,则使用。连接是可怕的,连续的(键,值)对连接需要大量的操作。rdd将数据保存到“静态数据”是有限的。你倾向于转换为df。
数据框,数据框
df和ds是柱状结构(ds不是pyspark的,而是箭头支撑),可以通过catalyst进行优化以产生更好的计划。连接更简单,更像json,支持半结构化数据和sql,这意味着除了数据工程师之外,可能还有更多的人可以参与进来。df具有良好的读写支持(从/到)hadoop或jdbs数据库。
ds有类型安全强制,但仍然有一些问题,但你没有问这个。
你也可以参考这个博客https://databricks.com/blog/2016/07/14/a-tale-of-three-apache-spark-apis-rdds-dataframes-and-datasets.html,但我并不完全相信上述所有观点。不过,这是我的意见。

相关问题