Итак, как я знаю в Spark Dataframe, несколько столбцов могут иметь то же имя, что и на снимке ниже:
[
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}))
]
Вышеупомянутый результат создается путем соединения с фреймом данных к самому себе, вы можете видеть, что есть 4
столбцы с двумя a
и f
.
Проблема в том, что когда я пытаюсь выполнить больше вычислений со a
столбцом, я не могу найти способ выбрать a
, я попытался, df[0]
и df.select('a')
оба вернули мне сообщение об ошибке ниже:
AnalysisException: Reference 'a' is ambiguous, could be: a#1333L, a#1335L.
Есть ли способ в Spark API, чтобы я снова мог отличить столбцы от повторяющихся имен? или, может быть, как-нибудь разрешить мне изменить имена столбцов?