无法通过Spark将文本格式转换为实木复合地板格式

时间:2018-12-29 12:56:31

标签: scala apache-spark hive

我正在尝试使用spark框架将分区的数据从一个表(文本格式)插入到另一个表(木地板格式)。数据约为20gb,我正在使用的配置是:

master =纱线

部署模式客户端

驱动程序内存= 3克

执行器内存= 15gb

执行者数量= 50

执行者核心= 4

我正在使用下面的代码来做到这一点:

val df = spark.sql("select * from table1")
df.repartition(70).write().mode("append").format("parquet").insertInto("table2")

每次尝试运行此命令时,完成某些任务后,作业都会失败,并出现Java堆空间问题。

基于数据的大小和我指定的Spark配置,我不确定在这里是否缺少任何内容,因为作业失败了。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

您必须设置JVM参数:

How to set Spark MemoryStore size when running in IntelliJ Scala Console?

官方信息:

  

火花属性主要可以分为两种:一种是相关的   进行部署,例如“ spark.driver.memory”,“ spark.executor.instances”,   设置时,此类属性可能不会受到影响   在运行时通过SparkConf以编程方式进行操作,否则行为为   取决于您选择的集群管理器和部署模式,因此   建议通过配置文件或spark-submit进行设置   命令行选项;另一个主要与Spark运行时有关   控件,例如“ spark.task.maxFailures”,这种属性可以是   设置任何一种方式。

https://spark.apache.org/docs/latest/configuration.html