Отож, як я знаю у 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')
обидва повернули мені нижче помилки mesageage:
AnalysisException: Reference 'a' is ambiguous, could be: a#1333L, a#1335L.
Чи є в Spark API такий спосіб, що я можу знову відрізнити стовпці від дубльованих імен? чи, можливо, якимсь способом дозволити мені змінити назви стовпців?