在PySpark DataFrame上运行SQL查询

时间:2019-08-07 10:43:56

标签: pyspark-sql

我正在使用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)

谢谢

1 个答案:

答案 0 :(得分:1)

尝试在查询中提供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)