как переименовать имя столбца dataframe в pyspark? - PullRequest
0 голосов
/ 23 октября 2018

Я хочу переименовать одно имя столбца из столбцов данных, поэтому в настоящее время имя столбца равно rate%year.Я хочу переименовать его как rateyear в pyspark.

Возможно, мы можем переименовать столбцы на уровне данных и уровне таблицы после регистрации кадра данных как таблицы, но на уровне таблицы "%" создаст проблему, поэтому я хочупереименовать на уровне данных itelf.

Я пробовал это - data.selectExpr("rate%year as rateyear")

, но получаю эту ошибку pyspark.sql.utils.AnalysisException: u"cannot resolve 'rate' given input columns

Спасибо.

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

Возможный способ переименования на уровне данных -

oldColumns=['rate%year']
newColumns = ["rateyear"]
df1 = reduce(lambda df, idx: df.withColumnRenamed(oldColumns[idx], newColumns[idx]), xrange(len(oldColumns)), df)

Это нормально работает на уровне данных.Любое предложение, как решить на уровне таблицы?

0 голосов
/ 28 февраля 2019

Я написал простую и быструю функцию для удаления% из имен столбцов.Наслаждайтесь!:)

def rename_cols(rename_df):
    for column in rename_df.columns:
        new_column = column.replace('%','')
        rename_df = rename_df.withColumnRenamed(column, new_column)
    return rename_df
0 голосов
/ 23 октября 2018

Попробуйте это:

sqlContext.registerDataFrameAsTable(data, "myTable")
data = sqlContext.sql("SELECT rate%year AS rateyear from myTable")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...