簡體   English   中英

如何在pyspark中重命名數據框的列名?

[英]how to rename column name of dataframe in pyspark?

我想從數據框列中重命名一個列名,所以目前列名是rate%year 我想將其重命名為rateyearpyspark

可能,我們可以在將數據幀注冊為表后在數據幀和表級別重命名列,但在表級別“%”會產生問題,所以我想在數據幀級別重命名 itelf。

我試過這個- data.selectExpr("rate%year as rateyear")

但收到此錯誤pyspark.sql.utils.AnalysisException: u"cannot resolve 'rate' given input columns

謝謝。

嘗試這個:

sqlContext.registerDataFrameAsTable(data, "myTable")
data = sqlContext.sql("SELECT rate%year AS rateyear from myTable")

我為您編寫了一個簡單快速的函數來從列名中刪除 %。 享受! :)

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

在數據幀級別重命名的可能方法-

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

這在數據幀級別工作正常。 任何建議如何在表級別解決?

更改數據框列名稱的簡單快捷的方法。

def format_col(df):    
    cols = [col.replace("%", "") for col in df.columns]
    res_df = df.toDF(*cols)
    return res_df

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM