Pyspark SparkSQL,Spark数据帧:批量重命名csv头

Pyspark SparkSQL,Spark数据帧:批量重命名csv头,pyspark,apache-spark-sql,spark-dataframe,Pyspark,Apache Spark Sql,Spark Dataframe,我正在尝试更改一个非常大的csv文件的标题 我使用SparkSQL 所有标题的每个标题名称中都有some\u string,如some\u string.header\u name 我的Spark配置conf=SparkConf().setMaster(“本地[*]”)。setAppName(“readCSV”) 要读取csv文件,我使用com.databricks.spark.csv包 logs_df = sqlContext.load( source = "com.databri

我正在尝试更改一个非常大的csv文件的标题

我使用SparkSQL

所有标题的每个标题名称中都有
some\u string
,如
some\u string.header\u name

我的Spark配置
conf=SparkConf().setMaster(“本地[*]”)。setAppName(“readCSV”)

要读取csv文件,我使用
com.databricks.spark.csv包

   logs_df = sqlContext.load(
   source = "com.databricks.spark.csv",
   header = 'true',
   inferSchema ='true',
   path = 'my_file.csv'
)
我的代码

 header = logs_df.first()
 schemaString = header.replace('`some_string.`','')
产生错误:

  AttributeError                            
  Traceback (most recent call last)
  <ipython-input-63-ccfad59fc785> in <module>()

   1255             raise AttributeError(item)
   1256         except ValueError:
-> 1257             raise AttributeError(item)
   1258 
   1259     def __setattr__(self, key, value):

AttributeError: replace
AttributeError
回溯(最近一次呼叫最后一次)
在()
1255提高属性错误(项目)
1256除值错误外:
->1257提高属性错误(项目)
1258
1259定义设置属性(自身、键、值):
属性错误:替换
我不喜欢使用
logs\u df.withColumnRename()
,因为我有200多列


非常欣赏如何快速有效地更改标题的任何想法

我对Python的了解还不足以提供示例代码片段。希望这能给你一些关于Python的提示。。。 选项1:我可能建议使用RDD并使用反射()构建模式。 在scala中,我将使用case类来反映这一点。 RDD的一个问题可能与它的性能有关

选项2:另一个选项可能是使用DataFrame.toDF(colNames:String*):DataFrame。基本上,按照您想要的正确顺序排列/选择列,并使用编程构建的序列提供列名

希望这有帮助