使用 saveAsTable 将 parquet 数据写入 S3 未完成
Posted
技术标签:
【中文标题】使用 saveAsTable 将 parquet 数据写入 S3 未完成【英文标题】:Writing parquet data into S3 using saveAsTable does not complete 【发布时间】:2017-03-03 18:08:58 【问题描述】:在 EC2 机器上使用 Spark 2.0.2,我一直在尝试将带有分区的 parquet 格式的表写入 S3,但应用程序似乎永远不会完成。我可以看到 Spark 已将文件写入 _temporary 下的 S3 存储桶/文件夹,并且一旦 Spark saveAsTable JOB 完成,应用程序就会挂起。
查看s3显示分区是用文件夹分区内的数据生成的(抽查),但_temporary文件夹仍然存在,并且显示表不包括新表。
还有其他人遇到这种情况或有解决方案吗?
有人知道 saveAsTable 命令下面发生了什么吗?
【问题讨论】:
请使用日志级别 DEBUG/INFO 运行作业并检查卡在哪里。 【参考方案1】:它没有挂起,只是需要将数据从临时存储复制到目的地,这需要大约 data/(10 MB/s) 的时间。 Spark 正在调用 Hadoop 的 FileOutputCommitter 来执行此操作,它认为它与 rename() 所在的 Fileytsem 对话是一个即时事务。
【讨论】:
我今天在启用 AWS Glue 的情况下使用saveAsTable()
使用 Apache Spark 编写数据时发现了类似的情况。以上是关于使用 saveAsTable 将 parquet 数据写入 S3 未完成的主要内容,如果未能解决你的问题,请参考以下文章