Tôi có một cấu trúc thư mục dựa trên hai phân vùng, như thế này:tiết kiệm để gỗ parquet subpartition
People
> surname=Doe
> name=John
> name=Joe
> surname=White
> name=Josh
> name=Julien
Tôi đọc file gỗ với thông tin duy nhất về tất cả Liệu, và do đó tôi trực tiếp nêu rõ họ = Doe như một thư mục đầu ra cho DataFrame của tôi. Bây giờ vấn đề là tôi đang cố gắng để thêm phân vùng dựa trên tên với partitionBy("name")
trên văn bản.
df.write.partitionBy("name").parquet(outputDir)
(outputDir chứa một đường dẫn đến thư mục Doe)
Điều này gây ra một lỗi như dưới đây:
Caused by: java.lang.AssertionError: assertion failed: Conflicting partition column names detected:
Partition column name list #0: surname, name
Partition column name list #1: surname
Bất cứ lời khuyên làm thế nào để giải quyết nó? Nó có thể xảy ra do tệp _SUCCESS
được tạo trong thư mục họ, cung cấp các gợi ý sai cho Spark - khi tôi xóa các tệp _SUCCESS
và _metadata
Spark có thể đọc mọi thứ mà không gặp bất kỳ sự cố nào.
Kể từ khi không ai khác gửi và tiền thưởng của tôi hết hạn , Tôi chấp nhận giải pháp này là giải pháp duy nhất được biết đến hiện nay. – Niemand
Điều này làm việc cho tôi cho Spark 1.6.3 'sc._jsc.hadoopConfiguration(). Set (" mapreduce.fileoutputcommitter.marksuccessfuljobs "," false ") sc._jsc.hadoopConfiguration(). Set (" parquet.enable.summary -metadata "," false ")' – Vezir