Я пытаюсь отобразить фрейм данных pyspark, где некоторые интересующие столбцы (coi) являются описательными, а другие (другие протоколы) имеют номера c, для которых я пытаюсь установить уровень точности.
coi=['col1','col2']
othercols=['col3','col4']
Я использую круглое предложение, измененное из показанного сообщения здесь
df.select(coi,[round(c,3).alias(c) for c in df.columns if c in othercols]).show()
Но это выдает мне ошибку.
Недопустимый аргумент, не строка или столбец: ['col1', 'col2] типа. Для литералов столбцов используйте функцию 'lit', 'array', 'struct' или 'create_map'.
На самом деле, когда я просто пытаюсь df.select(coi,othercols).show()
, это выдает мне ошибку. Однако, если я попробую его отдельно, например df.select(coi).show()
или df.select([round(c,3).alias(c) for c in df.columns if c in othercols]).show()
, он будет работать нормально.
Есть ли способ сгруппировать предопределенные столбцы, используя предложение select в pyspark?