尝试通过 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")
您需要从列名称中删除特殊字符。您可以在写入数据框之前添加此行:
import re
sourcedf2 = sourcedf.select(*[f.col(c).alias(re.sub("\W+", "", c)) for c in sourcedf.columns])