【发布时间】:2019-05-26 22:33:46
【问题描述】:
我正在尝试使用 spark 框架将分区的数据从一个表(文本格式)插入另一个表(镶木地板格式)。数据约为 20gb,我使用的配置是:
主人=纱线
部署模式客户端
驱动内存 = 3g
执行程序内存 = 15gb
执行者数 = 50
执行器核心 = 4
我正在使用下面的代码来做到这一点:
val df = spark.sql("select * from table1")
df.repartition(70).write().mode("append").format("parquet").insertInto("table2")
每次我尝试运行它时,在完成某些任务后,作业都会因 java-heap 空间问题而失败。
根据我指定的数据大小和 spark 配置,我不确定这里是否有任何我因为作业失败而遗漏的内容。对此的任何帮助将不胜感激。
【问题讨论】:
-
我建议也尝试设置 -Xms -Xmx JVMs 参数
-
源中有多少个文件?
-
@slesh .. 执行程序内存不会起到同样的作用吗?
-
@bdcloud .. 是 113
-
一种选择是增加驱动程序内存,也请发布您遇到的错误的堆栈跟踪。当您说完成了一些任务时,您的意思是一些文件在目的地转换为镶木地板?源文件也被压缩了?
标签: scala apache-spark hive