运行 PySpark DataFrame 上的 sql 查询

Run a sql query on a PySpark DataFrame

我正在使用 Databricks 并且我已经加载了一些 DataTables。

但是,我有一个复杂的 SQL 查询,我想对这些数据表进行操作,我想知道我是否可以避免在 pyspark 中翻译它。

这可能吗?

举个例子:

在SQL中:

with table2 as (
   select column1, column1
   from database.table1
   where
         start_date <= DATE '2019-03-01' and
         end_date >= DATE '2019-03-31'            )

在 pyspark 中,我已经加载了 table1,但以下内容不起作用,因为它找不到 table1

query = "(
    select column1, column1
           from table1
               where
         start_date <= DATE '2019-03-01' and
         end_date >= DATE '2019-03-31'            )"
table2 = spark.sql(query)

谢谢

尝试在查询中给出 databasename.tablename 而不是 tablename

query = "(
    select column1, column1
           from *database_name.table_name* 
               where
         start_date <= DATE '2019-03-01' and
         end_date >= DATE '2019-03-31' )" 

如果您使用的是pyspark,那么它必须是

pyspark.sql(query)