【发布时间】:2018-02-04 14:40:03
【问题描述】:
用例: A> 在 AWS s3 位置有文本 Gzipped 文件 B> 在文件顶部创建 Hive 表,以表形式访问文件中的数据 C> 使用 Spark Dataframe 读取表格并通过 Snappy 压缩转换为 Parquet 数据 D>表中的字段数为25,其中包括2个分区列。数据类型是字符串,除了两个数据类型为小数的字段。
使用以下 Spark 选项:--executor-memory 37G --executor-cores 5 --num-executors 20
集群大小 - 10 个 r3.8xLarge 类型的数据节点
发现 AWS EMR 中使用的 vCore 数量始终等于文件数量,可能是因为 gzip 文件不可拆分。 Gzipped 文件来自不同的系统,文件大小约为 8 GB。
6 个文件的 Parquet 转换总时间超过 2 小时,总大小为 29.8GB。
有没有办法通过 Spark 提高性能,使用 2.0.2 版本?
代码片段:
val srcDF = spark.sql(stgQuery) srcDF.write.partitionBy("data_date","batch_number").options(Map("compression"->"snappy","spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version"->"2","spark.推测"->"false")).mode(SaveMode.Overwrite).parquet(finalPath)
【问题讨论】:
标签: apache-spark-sql