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 4
Spalten mit zwei a
und vorhanden sind f
.
Das Problem ist, dass ich dort bin, wenn ich versuche, mehr Berechnungen mit der a
Spalte 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?