当我在Spark中的hive表中读取时,如何增加分区数

时间:2016-08-11 21:32:03

标签: apache-spark hive spark-dataframe hivecontext

所以,我试图在使用hiveContext的Spark中的hive表中读取。 该工作基本上将两个表中的数据读入两个数据帧,随后将这些数据帧转换为RDD' s。然后,我根据共同密钥加入他们。 但是,由于MetadataFetchFailException(What are the likely causes of org.apache.spark.shuffle.MetadataFetchFailedException: Missing an output location for shuffle?),此连接失败。

我希望通过将数据传播到其他节点来避免这种情况。 目前,即使我有800个执行器,大多数数据被读入10个节点,每个节点都使用> 50%的记忆。

问题是,如何在读取操作期间将数据传播到更多分区?我不想稍后重新分配。

 val tableDF= hiveContext.read.table("tableName")
                         .select("colId1", "colId2")
                         .rdd
                         .flatMap(sqlRow =>{
                            Array((colId1, colId2))
                         })

0 个答案:

没有答案