如何在spark上的hive中设置spark rdd storagelevel?

e5njpo68  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(459)

在我的“星火Hive”工作中,我得到以下错误:
org.apache.spark.shuffle.metadatafetchfailedexception:缺少shuffle 0的输出位置
感谢您的回答(为什么spark作业在org.apache.spark.shuffle.metadatafetchfailedexception:在推测模式下缺少shuffle 0的输出位置时失败?),我知道可能是我的hiveonspark作业也有同样的问题
由于配置单元将sql转换为hiveonspark作业,我不知道如何在配置单元中设置它,使其hiveonspark作业从storagelevel.memory\u only更改为storagelevel.memory\u and \u disk?
谢谢你的帮助~~~~

bmp9r5qi

bmp9r5qi1#

你可以用 CACHE/UNCACHE [LAZY] Table <table_name> 管理缓存。更多细节。
如果您使用的是dataframe,那么可以使用persist(…)来指定storagelevel。看看这里的api。。
除了设置存储级别之外,还可以优化其他内容。sparksql使用了一种不同的缓存机制,称为列式存储,这是一种更有效的缓存数据的方法(因为sparksql支持模式)。可以对不同的配置属性集进行调优,以管理这里详细描述的缓存(这是最新版本的文档)。请参阅您正在使用的版本的文档)。
spark.sql.inmemorycolumnarstorage.compressed文件
spark.sql.inmemorycolumnarstorage.batchsize

相关问题