使用Spark SQL查询数据的最佳实践是什么?

时间:2016-09-20 00:23:14

标签: apache-spark dataframe pyspark

在Spark 2.0.0上,如果我有一个数据库,我经常使用表A与其他表连接,我应该坚持我的表A并以这种方式加入吗?或者我应该使用Spark SQL方法来指定加入A和B,A和C等的查询?

如果我想使用where where

多次查询表Z.
SELECT * FROM Z where z_id = '1'

SELECT * FROM Z where z_id = '2' 

我应该使用Spark SQL并明确地查询它,还是查询表并对表RDD进行操作?

1 个答案:

答案 0 :(得分:0)

你可以做多件事。如果过滤器将被多次使用,请使用如下。

**df=sqlContext.sql('''select * from Z ''')
df.registerTempTable('Z_temp') 
sqlContext.cacheTable('Z_temp')** 

不带任何参数和缓存的Persit将数据保存/存储在内存中。

如果您使用表中的多个过滤器,请确保使用spark.sql.parquet.filter pushdown = True。