首页 > 解决方案 > spark.createDataFrame() 与 sqlContext.createDataFrame()

问题描述

spark.createDataFrame()有人可以向我解释和之间的区别sqlContext.createDataFrame()吗?我见过两者都使用过,但不了解确切的区别或何时使用哪个。

标签: apache-spark

解决方案


我假设您使用的 spark 版本超过 2,因为在第一种方法中,您似乎指的SparkSession是仅在版本 2 之后可用的

  • spark.createDataFrame(...)是在 spark 2 中创建 df 的首选方法。请参阅链接文档以查看可能的用法,因为它是一种重载方法。

  • sqlContext.createDataFrame(...)(spark version - 1.6) 是在 spark 1.x 中创建 df 的常用方法。正如您在链接文档中所读到的,它在 spark 2.x 中已被弃用,仅出于向后兼容性而保留

在 Spark 1.x 中处理结构化数据(行和列)的入口点。

从 Spark 2.0 开始,它被 SparkSession 取代。但是,我们将类保留在这里是为了向后兼容。

因此,要回答您的问题,您可以在 spark 2.x 中使用两种方式(尽管第二种方式已被弃用,因此强烈建议使用第一种方式),并且您只能使用第二种方式,前提是您坚持使用 spark 1。 X

编辑SparkSession实现(即源代码)和SQLContext实现


推荐阅读