apache-spark - 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
感谢任何帮助。
解决方案
我有同样的错误,我的解决方案是删除:
日期中的部分。
推荐阅读
- dart - Onrefresh 指标在条件语句中不起作用
- python - 有人可以帮助解释为什么 python aiohttp 返回的响应内容比 requests.get 多吗?
- database - 使用 laravel 中的现有枚举 col 更改 Column 数据类型
- javascript - 如何合并两个数组对象
- vue.js - 将 Vuex 传递给实例化组件的最佳方式?
- css - 如何设置输入类型选择的下拉菜单?
- vb.net - Visual Basic 将字符串转换为音频 (WAV) 文件并播放
- python-3.x - Python3 如何 asyncio.gather() 部分函数列表
- meteor - Meteor 帐户密码:TypeError:Accounts.setPassword 不是函数
- ios - 为什么 Firebase 远程配置不更新值?