我需要通过spark sql(sqlcontext)执行多个查询。由于更多的混洗和基于union all的排序,它花费更多的时间和内存然后转到GC内存开销错误。
val joinDF = sqlContext
.sql(rule3qry.dropRight(7))
.unionAll(sqlContext.sql(rule3qry.dropRight(7)))
.unionAll(sqlContext.sql(rule4qry.dropRight(7)))
.unionAll(sqlContext.sql(rule5qry.dropRight(7)))
然后单次击中cassandra DB。
“java.lang.OutOfMemoryError:无法获取20个字节的内存,得到0 在org.apache.spark.memory.MemoryConsumer.allocatePage(MemoryConsumer.java:120)“
以上是群集日志中的错误。 请建议如何在没有联合所有函数的情况下执行这些多个查询。