通过 PySpark 保存 Delta 格式文件时列名称中的特殊字符

问题描述 投票:0回答:1

尝试通过 Azure Databrics 将增量格式文件写入 ADLS 时出现错误

AnalysisException: Found invalid character(s) among ' ,;{}()\n\t=' in the column names of your schema. Please use other characters and try again.

我的列名称中有分号 (:) 和句点 (.),但在名称中保留这些字符很重要,因此我必须使用相同的列名称保存文件。我尝试保存 CSV,效果很好,但 delta 导致了上述错误。

我正在使用以下命令:

sourcedf.write.mode("overwrite").option("header", "true").option("mergeSchema", "true").option("spark.databricks.delta.properties.defaults.columnMapping.mode", "name").format("delta").save(path)

甚至尝试过这个选项

option("delta.columnMapping.mode", "name")

pyspark azure-databricks delta
1个回答
0
投票

您需要从列名称中删除特殊字符。您可以在写入数据框之前添加此行:

import re

sourcedf2 = sourcedf.select(*[f.col(c).alias(re.sub("\W+", "", c)) for c in sourcedf.columns])
© www.soinside.com 2019 - 2024. All rights reserved.