Pyspark SparkSQL,Spark数据帧:批量重命名csv头
我正在尝试更改一个非常大的csv文件的标题 我使用SparkSQL 所有标题的每个标题名称中都有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
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。基本上,按照您想要的正确顺序排列/选择列,并使用编程构建的序列提供列名 希望这有帮助