urv*_*tel 7 amazon-s3 apache-spark pyspark databricks
我正在尝试从 aws s3 读取数据,但出现错误。
s3存储桶和路径例如如下:
s3://USA/Texas/Austin/valid
s3://USA/Texas/Austin/invalid
s3://USA/Texas/Houston/valid
s3://USA/Texas/Houston/invalid
s3://USA/Texas/Dallas/valid
s3://USA/Texas/Dallas/invalid
s3://USA/Texas/San_Antonio/valid
s3://USA/Texas/San_Antonio/invalid
Run Code Online (Sandbox Code Playgroud)
当我尝试读为
spark.read.parquet("s3://USA/Texas/Austin/valid")
Run Code Online (Sandbox Code Playgroud)
或者
spark.read.parquet("s3://USA/Texas/Austin/invalid")
Run Code Online (Sandbox Code Playgroud)
或者
spark.read.parquet("s3://USA/Texas/Austin")
Run Code Online (Sandbox Code Playgroud)
它工作得很好。
但当我尝试读为
spark.read.parquet("s3://USA/Texas/*")
Run Code Online (Sandbox Code Playgroud)
或者
spark.read.parquet("s3://USA/Texas")
Run Code Online (Sandbox Code Playgroud)
它抛出异常。
java.lang.AssertionError:断言失败:检测到冲突的目录结构。可疑路径:
如果提供的路径是分区目录,请在数据源选项中设置“basePath”指定表的根目录。如果有多个根目录,请分别加载,然后合并。
根据建议,我可以单独阅读它们,但我有超过 500 个文件,单独阅读它们并将它们合并起来会很忙。
还有其他方法可以实现这一目标吗?
Lam*_*nus -1
如果可以使用Hive,则设置两个配置
hive.input.dir.recursive=true
hive.mapred.supports.subdirectories=true
Run Code Online (Sandbox Code Playgroud)
并create external table在根路径上。然后,该表应该读取表中的所有子目录数据,但架构应该相同,否则会出错。
| 归档时间: |
|
| 查看次数: |
4807 次 |
| 最近记录: |