Ich bin neu bei Apache Spark, und ich weiß, dass die Kerndatenstruktur RDD ist. Jetzt schreibe ich einige Apps, die Informationen zur Elementposition benötigen. Zum Beispiel muss ich nach dem Konvertieren einer ArrayList in eine (Java) RDD für jede Integer in RDD ihren (globalen) Array-Index kennen. Ist es möglich, es zu tun?Wie kann ich eine Elementposition in der RDD von Spark erhalten?
Wie ich weiß, gibt es eine Take (int) Funktion für RDD, so glaube ich, dass die Positionsinformationen in RDD noch beibehalten wird.
Ja, das Hinzufügen von Array-Index als zusätzliches Attribut vor dem Erstellen von RDD kann dieses Problem lösen. Es gibt jedoch zwei ernsthafte Einschränkungen: 1) Offensichtlich verdoppelt dieses zusätzliche Indexattribut mindestens die Speicherkosten, und solche Kosten können noch mehr betragen, z. B. wird in einem Integer/Float-Array ein langes int-Feld für den Index hinzugefügt. 2) Da das Hinzufügen zusätzlicher Indexwerte nicht in Spark geladen werden kann, kann eine solche Datenkonvertierung auch nicht von Spark parallelisiert werden. Daher muss ich andere parallele Techniken einbeziehen, um den Index hinzuzufügen. – SciPioneer