Scala 写入配置单元表中的多个文件时出现内存不足问题

Scala 写入配置单元表中的多个文件时出现内存不足问题,scala,apache-spark,hive,parquet,Scala,Apache Spark,Hive,Parquet,在循环中将数据帧内容写入配置单元表时,spark面临内存不足的问题 我们使用的代码 df.write.insertInto(hiveTable); 我们得到了一个例外 java.lang.OutOfMemoryError:超出GC开销限制 我们将内存配置为 --executor-memory 10g and num-executors 6 在寻找spark UI应用程序时,整个应用程序占用的内存不超过70MB,驱动程序内存为7MB到10MB,所有执行器为60MB 与我有关的事情 我们已通过更

在循环中将数据帧内容写入配置单元表时,spark面临内存不足的问题

我们使用的代码

df.write.insertInto(hiveTable);
我们得到了一个例外

java.lang.OutOfMemoryError:超出GC开销限制

我们将内存配置为

--executor-memory 10g and num-executors 6
在寻找spark UI应用程序时,整个应用程序占用的内存不超过70MB,驱动程序内存为7MB到10MB,所有执行器为60MB

与我有关的事情

我们已通过更改配置

--conf "spark.hadoop.parquet.enable.summay-metadata=false"
通过这一更改,我们提高了性能,但当我们增加对同一配置单元表的写入次数时,它又失败了

我们使用spark submit命令在客户机模式下运行spark应用程序。我们使用cloudera 1.6.0作为spark版本


请建议

您能告诉我们数据帧是如何构建的吗?可能是从CSV文件中加载了复制错误的最小代码量?数据帧。每个文件的最大大小为100mb。我们可以通过创建1000个csv文件并使用spark DataFrames将其写入hive db来复制该文件。您是从驱动程序(sc.parallelize)读取文件,还是从worker(sc.textFile,sc.wholeTextFile…)读取工作程序中的文件。sc.wholeTextFile。