【问题标题】:What is the best practice for querying data with Spark SQL?使用 Spark SQL 查询数据的最佳实践是什么?
【发布时间】:2016-10-04 04:17:15
【问题描述】:

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

如果我想使用 where 条件 i.e 多次查询表 Z

SELECT * FROM Z where z_id = '1'

SELECT * FROM Z where z_id = '2' 

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

【问题讨论】:

  • 如果您多次使用 rdd 或数据框,我会说使用 persist() 总是好的。你应该在问之前尝试!

标签: apache-spark dataframe pyspark


【解决方案1】:

你可以做很多事情。如果过滤器将被多次使用,请按照以下方式使用。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-18
    • 2021-01-06
    • 2013-01-06
    • 2019-01-30
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    相关资源
    最近更新 更多