Spark 2 Python重命名列和设置列数据类型

Spark 2 Python重命名列和设置列数据类型,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,我使用DataFrame读取HDFS文件,并使用正则表达式提取数据 列名使用索引动态生成,列数据类型创建为字符串 我是否可以重新定义DataFrame的模式,而不单独重命名或强制转换列 我的计划是将DataFrame转换为RDD,并使用模式将RDD转换回DataFrame 我不确定这是否是一个好主意。如果您的数据框中只有几列,比如5,并且您想重命名所有列,那么您可以使用下面的toDF函数 旧列名称:A、B、C、D、E。 新列名称:V、W、X、Y、Z newdf = df.toDF("V", "W

我使用DataFrame读取HDFS文件,并使用正则表达式提取数据

列名使用索引动态生成,列数据类型创建为字符串

我是否可以重新定义DataFrame的模式,而不单独重命名或强制转换列

我的计划是将DataFrame转换为RDD,并使用模式将RDD转换回DataFrame


我不确定这是否是一个好主意。

如果您的数据框中只有几列,比如5,并且您想重命名所有列,那么您可以使用下面的toDF函数

旧列名称:A、B、C、D、E。 新列名称:V、W、X、Y、Z

newdf = df.toDF("V", "W", "X", "Y", "Z")
因此,在newdf中,您将找到新的列名

如果要重命名某个特定对象,可以使用函数WITHCOLUMNRENAME

newdf = df.withColumnRenamed("current-_name", "new_name")
希望有帮助。

不建议转换为rdd并返回。你可以试试这个答案。如果这不起作用,请解释原因,并发表一篇文章。