कल्पना कीजिए कि मैं निम्नलिखित DataFrame df है:क्या collect_list() पंक्तियों के सापेक्ष क्रम को बनाए रखता है?
+---+-----------+------------+
| id|featureName|featureValue|
+---+-----------+------------+
|id1| a| 3|
|id1| b| 4|
|id2| a| 2|
|id2| c| 5|
|id3| d| 9|
+---+-----------+------------+
कल्पना कीजिए कि मैं चलाएँ:
df.groupBy("id")
.agg(collect_list($"featureIndex").as("idx"),
collect_list($"featureValue").as("val"))
हूँ मैं गारंटी कि "IDX" और "वैल" समग्र किया जाएगा और उनके रिश्तेदार रखना आदेश? यानी
GOOD GOOD BAD
+---+------+------+ +---+------+------+ +---+------+------+
| id| idx| val| | id| idx| val| | id| idx| val|
+---+------+------+ +---+------+------+ +---+------+------+
|id3| [d]| [9]| |id3| [d]| [9]| |id3| [d]| [9]|
|id1|[a, b]|[3, 4]| |id1|[b, a]|[4, 3]| |id1|[a, b]|[4, 3]|
|id2|[a, c]|[2, 5]| |id2|[c, a]|[5, 2]| |id2|[a, c]|[5, 2]|
+---+------+------+ +---+------+------+ +---+------+------+
नोट: उदा। यह बीएडी है क्योंकि आईडी 1 [ए, बी] के लिए [3, 4] (और नहीं [4, 3]) से जुड़ा होना चाहिए था। आईडी 2
तो स्पार्क डेटाफ्रेम 'लंबवत' के बजाय डेटा क्षैतिज रूप से प्रसंस्करण वितरित करता है। यानी एक निष्पादक हमेशा पूरी पंक्ति प्राप्त करेगा और न केवल इसके कुछ स्तंभ? – Gevorg
हां। पंक्ति हमेशा एक एकल निष्पादक/नोड पर पूरी तरह से होती है। –