Wie ich in Spark Dataframe weiß, kann dieser für mehrere Spalten denselben Namen haben, wie im folgenden Datenrahmen-Snapshot gezeigt:
[
Row(a=107831, f=SparseVector(5, {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0}), a=107831, f=SparseVector(5, {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0})),
Row(a=107831, f=SparseVector(5, {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0}), a=125231, f=SparseVector(5, {0: 0.0, 1: 0.0, 2: 0.0047, 3: 0.0, 4: 0.0043})),
Row(a=107831, f=SparseVector(5, {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0}), a=145831, f=SparseVector(5, {0: 0.0, 1: 0.2356, 2: 0.0036, 3: 0.0, 4: 0.4132})),
Row(a=107831, f=SparseVector(5, {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0}), a=147031, f=SparseVector(5, {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0})),
Row(a=107831, f=SparseVector(5, {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0}), a=149231, f=SparseVector(5, {0: 0.0, 1: 0.0032, 2: 0.2451, 3: 0.0, 4: 0.0042}))
]
Das obige Ergebnis wird durch Verknüpfen mit einem Datenrahmen zu sich selbst erstellt. Sie können sehen, dass 4Spalten mit zwei aund vorhanden sind f.
Das Problem ist, dass ich dort bin, wenn ich versuche, mehr Berechnungen mit der aSpalte durchzuführen. Ich kann keine Möglichkeit finden, die auszuwählen a. Ich habe es versucht df[0]und df.select('a')beide haben mich unter Fehlermeldung zurückgegeben:
AnalysisException: Reference 'a' is ambiguous, could be: a#1333L, a#1335L.
Gibt es in der Spark-API überhaupt eine Möglichkeit, die Spalten wieder von den duplizierten Namen zu unterscheiden? oder vielleicht eine Möglichkeit, die Spaltennamen zu ändern?