【问题标题】:SQL vs PySpark/Spark SQLSQL 与 PySpark/Spark SQL
【发布时间】:2022-08-19 01:05:50
【问题描述】:

如果我的数据的源和目标是同一个数据库,有人可以帮我理解为什么我们需要使用 PySpark 或 SprakSQL 等吗?

例如,假设我需要从表 X 和 Y 将数据加载到 Postgres DB 中的表 X。在 Postgres 中而不是使用 Spark SQL 或 PySpark 等不是更简单、更快捷吗?

如果数据来自多个来源,我了解对这些解决方案的需求,但如果来自同一来源,我是否需要使用 PySpark?

  • 是的你是对的。您不必使用 Spark。
  • 使用 pyspark 进行大量转换,因为 spark 使其具有分布式和可扩展性。数据加载最好在数据库本身
  • 你说的对。这样做是没有意义的,即使纯粹来自数据往返。只有在 Spark/Python/Dataframes 中比 SQL 更有效的复杂文本转换时,您才会使用 spark。请记住,我们拥有数十年的成功数据工程,而这些工程仅在数据库中构建。
  • 谢谢大家的反馈。如果源和目标不同,我想我会使用胶水 pyspark。否则,我将使用带有 jdbc 连接的胶水 python,并让一个会话完成任务而不将数据带入数据帧。

标签: postgresql apache-spark pyspark apache-spark-sql


【解决方案1】:

当您想要进行繁重的数据转换时,您可以使用 spark,由于分布式处理,它使加载和处理变得更容易。

这完全取决于数据有多大以及您希望如何转换它。

如果数据相对较小且不需要转换,则使用 Postgres 将是一个好主意。

【讨论】:

  • 如果数据相对较小且不需要转换,则使用 Postgres 将是一个好主意。“小”有多大?只要计算支持,您就可以处理任意大的数据集。
【解决方案2】:

没有必要使用 PySpark。 PySpark 和 SparkSQL 在分布式计算设置中管理/操作数百 GB、TB 或 PB 的大量数据方面都有其价值。如果是这种情况,请使用 PySpark,在将数据插入另一个表之前加载、操作、处理/塑造数据会更有效。

【讨论】:

    【解决方案3】:

    谢谢大家的反馈。如果源和目标不同,我想我会使用胶水 pyspark。否则,我将使用带有 jdbc 连接的胶水 python,并让一个会话完成任务而不将数据带入数据帧。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-26
      • 1970-01-01
      • 1970-01-01
      • 2017-01-15
      • 2022-01-05
      • 1970-01-01
      • 2016-12-13
      相关资源
      最近更新 更多