首页 > 解决方案 > Spark覆盖aws s3上的镶木地板文件引发URISyntaxException:绝对URI中的相对路径

问题描述

我正在使用 Spark 在 AWS S3 上编写和读取镶木地板文件。我有存储在

's3a://mybucket/file_name.parquet/company_name=company_name/record_day=2019-01-01 00:00:00' 

'company_name''record_day'分区

我想编写基本管道以通过“record_day”定期更新我的镶木地板文件。为此,我将使用覆盖模式:

df.write.mode('overwrite').parquet(s3a://mybucket/file_name.parquet/company_name='company_name'/record_day='2019-01-01 00:00:00')

但是出现意外错误'java.net.URISyntaxException: Relative path in absolute URI: key=2019-01-01 00:00:00'

我花了几个小时寻找问题,但没有找到解决方案(。对于某些测试,我将'overwrite'参数替换为'append',一切正常。我还制作了一个简单的数据框,覆盖模式也可以正常工作。我知道我可以通过删除然后编写特定部分来以不同的方式解决我的问题,但我想了解错误的原因是什么? Spark 2.4.4 Hadoop 2.8.5

感谢任何帮助。

标签: apache-sparkamazon-s3parquetpyspark-dataframes

解决方案


我有同样的错误,我的解决方案是删除:日期中的部分。


推荐阅读