spark.createDataFrame()与sqlContext.createDataFrame()

时间:2018-12-30 17:57:58

标签: apache-spark

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

1 个答案:

答案 0 :(得分:0)

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

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

  • sqlContext.createDataFrame(...)是在spark 1.x中创建df的常用方法。您可以在链接的文档中阅读,它在spark 2.x中已弃用,仅出于向后兼容的目的而保留

  

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

     

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

因此,为回答您的问题,您可以 在spark 2.x中使用两种方式(尽管不建议使用第二种方法,因此强烈建议您使用第一种),并且您只能使用第二个条件是您被Spark 1.x困住了

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