python - 连接两个 Pyspark 数据帧的两种方法有什么区别

标签 python pyspark apache-spark-sql

连接两个 Pyspark 数据帧的两种方法有什么区别。
1. 在两个数据帧上使用“createOrReplaceTempView”并使用sparkSession.sql()。
2. 在两个数据帧上使用 dataframe.alias(),然后使用 join() 方法

最佳答案

没有区别,除非您在 SQL 或 DataFrame api 代码中给出任何提示或优化。您可以使用 DataFrame 或 SQL API 编写联接操作,这些操作将通过相同的催化剂优化器并转换为执行计划。

enter image description here

物理计划通常称为 Spark 计划,通过生成不同的物理执行策略并通过成本模型进行比较来指定逻辑计划如何在集群上执行。

物理规划导致一系列 RDD 和转换。这个结果就是为什么您可能听说 Spark 被称为编译器 - 它接受 DataFrame、数据集和 SQL 中的查询,并将它们编译为 RDD 转换

关于python - 连接两个 Pyspark 数据帧的两种方法有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53823364/

相关文章:

python - 通过不在主脚本中的方法更新 Qt 界面中的文本

apache-spark - 带有RandomForest的Spark ML管道在20MB数据集上花费的时间太长

regex - Pyspark:通过字符串格式的正则表达式过滤数据帧?

java - Spark 使用编码器创建数据集,其中 row 是数组类型

java - 如何在spark sql中创建永久表

python - 如何按日期过滤日期时间字段?

python - 如何更改 Pandas 中除第一列以外的所有列的列类型?

Python,单元测试 : Can one make the TestRunner completely quiet?

python - 计算 pySpark 中非唯一列表元素的累积和

python - 在 pyspark 中聚合 5 分钟窗口