csv头解析

u0njafvf  于 2021-07-13  发布在  Spark
关注(0)|答案(2)|浏览(297)

我试图从azuredatabricks读取csv文件作为Dataframe。标题列(在excel中打开时)如下所示。在csv文件中,所有头文件名的格式如下。
例如

"City_Name"ZYD_CABC2_EN:0TXTMD

基本上,我只想在引号中包含字符串作为标题(city\u name),而忽略字符串的第二部分(zyd\u c2\u en:0txtmd)

sales_df = spark.read.format("csv").load(input_path + '/sales_2020.csv', inferSchema = True, header=True)
xyhw6mcr

xyhw6mcr1#

您可以在读取csv文件后解析列名,使用正则表达式提取引号之间的单词,然后使用 toDF 要一次重新指定所有列名,请执行以下操作:

import re

# sales_df = spark.read.format("csv")...

sales_df = sales_df.toDF(*[re.search('"(.*)"', c).group(1) for c in df.columns])
mnowg1ta

mnowg1ta2#

你可以 split 实际名称使用 " 要获取所需的列名,请执行以下操作:

sales_df = sales_df.toDF(*[c.split('"')[1] for c in df.columns])

相关问题