pyspark 如何使用不区分大小写的字段名称处理将表从MongoDB导入到Databricks?

ars1skjm  于 2023-11-16  发布在  Spark
关注(0)|答案(1)|浏览(176)

我需要从MongoDB导入一个包含大小写混合字段名的表。例如:
文件一:
_id:100 account_id:1001 abc:“asd”
文件二:
_id:201 ACTRONIC_ID:1023 XYZ:“qwe”
当我在Databricks中执行以下代码时,我遇到以下错误:
[COLUMN_ALREADY_EXISTS]列“account_id”已存在。请考虑选择其他名称或重命名现有列。
下面是我使用的代码:

from cb_databricks.predefined import spark

mongo_df = (
    spark.read.format("mongo")
    .option("database", database)
    .option("collection", mongo_table)
    .option("spark.mongodb.input.uri", connect_string)
    .load()
)
mongo_df.write.mode("overwrite").option("overwriteSchema", "true").saveAsTable("databricks_table")

字符串
当从MongoDB阅读数据到Databricks中时,如何修改此代码或设置适当的选项来处理不区分大小写的字段名称?

q43xntqr

q43xntqr1#

您可以将spark.sql.caseSensitive Spark配置设置为"true"

spark.conf.set("spark.sql.caseSensitive", "true")

字符串
但是下游的消费者也需要使用它,最好有一些代码来规范化名称。

相关问题