apache-spark - spark.createDataFrame() 与 sqlContext.createDataFrame()
问题描述
spark.createDataFrame()
有人可以向我解释和之间的区别sqlContext.createDataFrame()
吗?我见过两者都使用过,但不了解确切的区别或何时使用哪个。
解决方案
我假设您使用的 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
实现
推荐阅读
- amazon-web-services - 如何将 Name.com 上托管的域指向 AWS S3 静态网站?
- babeljs - regeneratorRuntime 未定义(如何防止 babel 包含该 polyfill?)
- tensorflow - 量化感知训练示例?
- python - 当 JSON 记录没有容器名称时从 api 中提取数据
- java - Java 泛型:为什么这个嵌套模板会失败?
- java - 在 Spark 中将行转换为嵌套的 JSON
- python - 如何使用 PyDrive 替换/更新 Google Drive 上的文件?
- powershell - 从工作表 A 复制并粘贴到工作表 B(仅限值)
- r - 当它们都有共同的列时,如何使用查找数据框中的值替换主数据框中的值?
- reactjs - 在 ReactJS 项目中有很多 ReactDOM.render() 有什么问题吗?