祝福
在这个举国同庆的时刻,我们首先献上对祖国的祝福:
第一,我们感谢您给我们和平的环境,让我们能快乐生活
第二,祝福我们国家未来的路越走越宽广,科技更发达,人民更幸福
第三,我们会紧紧跟随您的脚步,一起为美好的未来奋斗
一、将数据缓存到内存
import spark.implicits._
import spark.sql
spark.catalog.cacheTable("personal_info")
spark.catalog.uncacheTable("personal_info")
val personalInfoDataFrame = sql("select name,age FROM personal_info")
personalInfoDataFrame.cache()
personalInfoDataFrame.unpersist()
cacheTable() 和 cache() 最终都调用了CacheManager的cacheQuery()
CacheManager对数据的缓存与RDD中的cache()是不同的,RDD中的cache()是的持久化级别是MEMORY_ONLY,而这里是MEMORY_AND_DISK,因为Spark任务重新计算底层表并将其缓存是昂贵的。
二、选项设置
以下选项可用于调整查询执行的性能。随着自动执行更多优化,这些选项可能会在未来的版本中被弃用。
spark.sql.files.maxPartitionBytes 默认:128M
解释:读取文件时打包到单个分区中的最大字节数。此配置仅在使用基于文件的源(如Parket、JSON和ORC)时有效。
spark.sql.files.openCostInBytes 默认值:4M
解释:打开一个文件的估计成本,以可以同时扫描的字节数来衡量。这是在将多个文件放入一个分区时使用的。最好过度估计,那么具有小文件的分区将比具有较大文件的分区(这是首先调度的)更快。此配置仅在使用基于文件的源(如Parket、JSON和ORC)时有效。
spark.sql.files.minPartitionNum 默认值:spark.sql.leafNodeDefaultParallelism
解释:建议的(不保证的)最小分割文件分区数如果未设置。此配置仅在使用基于文件的源(如Parquet、JSON和ORC)时有效。
spark.sql.files.maxPartitionNum 默认值:None
解释:建议的(不保证的)分割文件分区的最大数量。如果设置了,如果初始分区数超过此值,Spark将重新调整每个分区以使分区数接近此值。此配置仅在使用基于文件的源(如Parket、JSON和ORC)时有效。
spark.sql.broadcastTimeout 默认值:5*60 秒
解释:广播等待超时时间
spark.sql.autoBroadcastJoinThreshold 默认值:10M
解释:配置表的最大大小(以字节为单位),该表将在以下情况下广播到所有工作节点 执行连接。通过将此值设置为-1,可以禁用广播。请注意,目前

1754

被折叠的 条评论
为什么被折叠?



