मान लें कि हमारे पास एक स्ट्रिंग कॉलम, col1
, और एक सरणी कॉलम, col2
के साथ डेटाफ्रेम है। मैं सोच रहा था क्या स्पार्क ऑपरेशन में पर्दे के पीछे होता है:स्पार्क चयन-विस्फोट मुहावरे को कैसे कार्यान्वित किया जाता है?
df.select('col1', explode('col2'))
ऐसा लगता है कि select इनपुट के रूप में Column
वस्तुओं की एक अनुक्रम लेता है, और explode एक Column
तो मिलान प्रकारों देता है। लेकिन explode('col2')
द्वारा लौटा गया कॉलम col1
की तुलना में अलग-अलग लंबाई का तार्किक रूप से है, इसलिए मैं सोच रहा था कि इसका आउटपुट डेटाफ्रेम बनाने के दौरान उन्हें "सिंक" करने का तरीका कैसा लगता है। मैंने सुराग के लिए Column कक्षा को देखने का प्रयास किया लेकिन वास्तव में कुछ भी नहीं मिला।
धन्यवाद! मेरा सवाल तकनीकी रूप से डेटा फ्रेम के बारे में था, लेकिन मुझे लगता है कि यह वही है। यहां [इसका एक उदाहरण] है (https://github.com/apache/spark/blob/v2.0.0-rc1/sql/core/src/main/scala/org/apache/spark/sql/Dataset.scala# L1587-L1604) Dataset.scala स्रोत से। – hillel
'डेटाफ्रेम' एक डेटासेट [पंक्ति] 'है। – zero323