所以,我试着用hivecontext在spark的Hive表中阅读。这个作业基本上把两个表中的数据读入两个Dataframe,然后再转换成rdd。i、 然后,根据一个公共密钥加入它们。但是,由于metadatafetchfailedexception(org.apache.spark.shuffle.metadatafetchfailedexception的可能原因是什么:缺少shuffle的输出位置?)。
我希望通过将数据分散到其他节点来避免这种情况。目前,尽管我有800个执行器,但大多数数据都被读入10个节点,每个节点都占用了超过50%的内存。
问题是,在读取操作期间,如何将数据分布到更多的分区?我不想以后重新分区。
val tableDF= hiveContext.read.table("tableName")
.select("colId1", "colId2")
.rdd
.flatMap(sqlRow =>{
Array((colId1, colId2))
})
暂无答案!
目前还没有任何答案,快来回答吧!