【发布时间】:2020-06-24 12:15:23
【问题描述】:
我有一个带有标题的 CSV,我想将其保存为 Parquet(实际上是一个增量表)
列标题中有空格,这是 parquet 无法处理的。如何将空格改为下划线?
这是我到目前为止的内容,从其他 SO 帖子拼凑而成:
from pyspark.sql.functions import *
df = spark.read.option("header", True).option("delimiter","\u0001").option("inferSchema",True).csv("/mnt/landing/MyFile.TXT")
names = df.schema.names
for name in names:
df2 = df.withColumnRenamed(name,regexp_replace(name, ' ', '_'))
当我运行它时,最后一行给了我这个错误:
TypeError: 列不可迭代
我认为这将是一个常见的要求,因为镶木地板无法处理空间,但很难找到任何示例。
【问题讨论】:
-
你可以试试 select:
df.select([col(a).alias(b) for a,b in zip(df.columns,[re.sub(" ","_",i) for i in df.columns])])
标签: python-3.x apache-spark pyspark databricks