PySpark 和 SparkSQL 之间有区别吗?如果是这样,有什么区别?

Is there are difference between PySpark and SparkSQL? If so, what's the difference?

长话短说,我的第一个任务是将文件从 SparkSQL 转换为 PySpark我的新工作。

但是,我看不出语法之外的许多差异。 SparkSQL 是 PySpark 的早期版本或其组件还是完全不同的东西?

是的,这是我第一次使用这些工具。但是,我对 Python 和 SQL 都有经验,所以这似乎不是一项艰巨的任务。只是想更好地理解。

我指的语法差异示例:

spark.read.table("db.table1").alias("a")
.filter(F.col("a.field1") == 11)
.join(
    other = spark.read.table("db.table2").alias("b"),
    on = 'field2',
    how = 'left'

对战

    df = spark.sql(
  """
    SELECT b.field1,
            CASE WHEN ...
              THEN ...
              ELSE ...
            end field2
    FROM db.table1 a
    LEFT JOIN db.table2 b 
      on a.field1= b.field1
    WHERE a.field1= {}
    """.format(field1)
)

来自 documentation:PySpark 是一个界面,您可以在其中拥有 spark 的组件。 Spark 核心、SparkSQL、Spark Streaming 和 Spark MLlib。

来到分配给您的任务,看起来您的任务是将 SQL-heavy 代码翻译成更 PySpark-friendly 的格式。