我正在尝试使用spark框架将一个分区的数据从一个表(文本格式)插入到另一个表(拼图格式)。数据大约是20 do,我使用的配置是:
master =纱线
部署模式客户端
驱动程序内存= 3g
executor内存=15
执行者数= 50
执行器内核=4
我正在使用下面的代码来完成这个任务:
val df = spark.sql("select * from table1")
df.repartition(70).write().mode("append").format("parquet").insertInto("table2")每次我尝试运行此程序时,在完成某些任务后,作业都会失败,并出现java-heap空间问题。
根据我指定的数据大小和spark配置,我不确定是否因为作业失败而遗漏了什么。任何对此的帮助都将不胜感激。
发布于 2018-12-31 19:58:35
您必须设置JVM参数:
How to set Spark MemoryStore size when running in IntelliJ Scala Console?
官方信息:
的Spark属性主要可以分为两类:一类是与deploy相关的,比如“spark.driver.memory”、“spark.executor.instances”,这类属性在运行时通过SparkConf进行程序化设置时可能不会受到影响,或者行为取决于你选择哪种集群管理器和部署模式,所以建议通过配置文件或者spark-submit命令行选项来设置;另一类主要是Spark运行时控制,比如“spark.task.maxFailures”,这类属性可以通过任何一种方式来设置。
https://stackoverflow.com/questions/53969729
复制相似问题