对于小型 s3 输入文件 (~10GB),粘合 ETL 作业可以正常工作,但对于较大的数据集 (~200GB),该作业会失败。
添加部分ETL代码。
# Converting Dynamic frame to dataframe
df = dropnullfields3.toDF()
# create new partition column
partitioned_dataframe = df.withColumn('part_date', df['timestamp_utc'].cast('date'))
# store the data in parquet format on s3
partitioned_dataframe.write.partitionBy(['part_date']).format("parquet").save(output_lg_partitioned_dir, mode="append")
作业执行 4 小时并抛出错误。
文件“script_2017-11-23-15-07-32.py”,第 49 行,在 partitioned_dataframe.write.partitionBy(['part_date']).format("parquet").save(output_lg_partitioned_dir, mode="append" )文件“/mnt/yarn/usercache/root/appcache/application_1511449472652_0001/container_1511449472652_0001_02_000001/pyspark.zip/pyspark/sql/readwriter.py”,第550行,保存文件“/mnt/yarn/usercache/root/appcache/application_1511014974 /container_1511449472652_0001_02_000001/py4j-0.10.4-src.zip/py4j/java_gateway.py”,第 1133 行,通话中文件“/mnt/yarn/usercache/root/appcache/application_1511449472652_0001/container_1511449472652_0001_02_000001/pyspark.zip/pyspark/sql/utils.py”,第 63 行,在 deco 文件“/mnt/yarn/usercache/root/appcache/application_15114494726 container_1511449472652_0001_02_000001/py4j-0.10.4-src.zip/py4j/protocol.py”,第 319 行,在 get_return_value py4j.protocol.Py4JJavaError:调用 o172.save 时出错。:org.apache.spark.SparkException:作业中止。在 org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$write$1.apply$mcV$sp(FileFormatWriter.scala:147) 在 org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun $write$1.apply(FileFormatWriter.scala:121) at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$write$1.apply(FileFormatWriter.scala:
日志类型结束:stdout
如果您能提供任何指导来解决此问题,我将不胜感激。