使用spark加载数组:无法将ARRAY转换为StructType

jchrr9hc  于 2023-10-23  发布在  Apache
关注(0)|答案(1)|浏览(160)
com.mongodb.spark.exceptions.MongoTypeConversionException: Cannot cast ARRAY into a StructType(StructField(userid,StringType,true),StructField(username,StringType,true),StructField(zohocrm_id,StringType,true)) (value: BsonArray{values=[]})

我在使用spark从mongodb加载数据时遇到了这个错误。但是当我在.option管道中使用$match时,它工作了。如何修复这个错误,谢谢!

spark = SparkSession \
        .builder \
        .appName("mongo4XC") \
        .config("spark.mongodb.input.uri",dbURLinfo) \
        .config("spark.mongodb.output.uri",dbURLinfo) \
        .config("spark.executor.heartbeatInterval", "180s") \
        .config("spark.network.timeout", "300s") \
        .config('spark.jars.packages', 'org.mongodb.spark:mongo-spark-connector_2.12:3.0.2') \
        .config("spark.sql.debug.maxToStringFields", 1000) \
        .config("spark.mongodb.input.sampleSize", 500000) \
        .getOrCreate()

df = spark.read.format("com.mongodb.spark.sql.DefaultSource") \
        .option("database", db_database) \
        .option("collection", collection) \
        .option("pipeline", pipeline) \
        .load()

我想加载完整的数据库在mongo不使用$match

xytpbqjk

xytpbqjk1#

在mongo中的字段“User”中的错误在一些文档中是Object类型的,其余的是由于缺乏数据,所以它们将自己转换为Array类型

相关问题