Mam strukturę katalogów oparte na dwóch partycjach, tak:Oszczędzanie na parkiet podpartycję
People
> surname=Doe
> name=John
> name=Joe
> surname=White
> name=Josh
> name=Julien
Czytam plików parkietem informacje tylko o wszystko robi, i dlatego jestem bezpośrednio określające nazwisko = Kowalski jako katalog wyjściowy dla mojej DataFrame. Problem polega na tym, że próbuję dodać partycjonowanie oparte na nazwach przy pisaniu partitionBy("name")
.
df.write.partitionBy("name").parquet(outputDir)
(outputDir zawiera ścieżkę do katalogu DOE)
Powoduje to błąd jak poniżej:
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
jakieś wskazówki jak go rozwiązać? Prawdopodobnie dzieje się tak z powodu pliku _SUCCESS
utworzonego w katalogu nazwisk, który podaje złe wskazówki dla Sparka - kiedy usuwam pliki _SUCCESS
i _metadata
, Spark może czytać wszystko bez żadnego problemu.
Ponieważ nikt inny pisał i wygasa moja laska , Akceptuję to rozwiązanie jako jedyne znane na razie. – Niemand
To działało dla mnie dla Spark 1.6.3 'sc._jsc.hadoopConfiguration() .set (" mapreduce.fileoutputcommitter.marksuccessfuljobs "," false ") sc._jsc.hadoopConfiguration() .set (" parquet.enable.summary -metadata "," false ")' – Vezir