有人可以向我解释spark.createDataFrame()
和sqlContext.createDataFrame()
之间的区别吗?我都看过两者,但不了解确切的区别或何时使用。
答案 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
实现