मैं एक निर्देशिका संरचना दो विभाजन के आधार पर, इस तरह है:की बचत की छत को subpartition
People
> surname=Doe
> name=John
> name=Joe
> surname=White
> name=Josh
> name=Julien
मैं पढ़ रहा हूँ छत फ़ाइलों जानकारी सभी करता है केवल बारे में साथ है, और इसलिए मैं सीधे निर्दिष्ट उपनाम = डो हूँ मेरे डेटाफ्रेम के लिए आउटपुट निर्देशिका के रूप में। अब समस्या यह है कि मैं लेखन पर partitionBy("name")
के साथ नाम-आधारित विभाजन जोड़ने की कोशिश कर रहा हूं।
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
किसी भी सुझाव दिए गए हैं कि यह कैसे हल करने के लिए:
df.write.partitionBy("name").parquet(outputDir)
यह नीचे की तरह एक त्रुटि का कारण बनता है (outputDir डो निर्देशिका में एक पथ है)? यह शायद उपनाम निर्देशिका में बनाई गई _SUCCESS
फ़ाइल की वजह से होती है, जो स्पार्क को गलत संकेत देता है - जब मैं _SUCCESS
और _metadata
फ़ाइलों को हटा देता हूं स्पार्क किसी भी मुद्दे के बिना सब कुछ पढ़ने में सक्षम है।
के बाद से कोई भी किसी और पोस्ट और मेरे इनाम समाप्त हो रहा है , मैं इस समाधान को केवल एक के रूप में स्वीकार कर रहा हूं। – Niemand
यह स्पार्क 1.6.3 'sc._jsc.hadoop कॉन्फ़िगरेशन() के लिए मेरे लिए काम करता है। (" Mapreduce.fileoutputcommitter.marksUccessfuljobs "," false ") sc._jsc.hadoop कॉन्फ़िगरेशन()। सेट (" parquet.enable.summary -मैटडाटा "," झूठा ")' – Vezir