首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDb -火花-不能将字符串转换为NullType (值: BsonString{value='4492148'})

问MongoDb -火花-不能将字符串转换为NullType (值: BsonString{value='4492148'})
EN

Stack Overflow用户
提问于 2020-07-15 19:40:32
回答 1查看 1K关注 0票数 2

我正在尝试从MongoDb提取数据到我的DF。使用Java火花

以下是样本代码:-

代码语言:javascript
复制
SparkConf conf = new SparkConf()
        .setAppName("MongoSparkConnectorTour")
        .setMaster("local")
        .set("spark.app.id", "MongoSparkConnectorTour")
        .set("spark.mongodb.input.uri", uri)
        .set("sampleSize", args[2])
        .set("spark.mongodb.output.uri", uri)
        .set("spark.mongodb.input.partitioner", "MongoPaginateByCountPartitioner")
        .set("spark.mongodb.input.partitionerOptions.numberOfPartitions", "64")

JavaSparkContext jsc = new JavaSparkContext(conf)

DataFrame df = MongoSpark.load(jsc).toDF();

System.out.println("DF Count - " + df.count());        
df.printSchema();

有两个表,一个表,我可以在没有任何问题的情况下获取数据,但是对于另一个表,我得到了以下问题-

代码语言:javascript
复制
20/07/15 14:17:31 ERROR Executor: Exception in task 1.0 in stage 3.0 (TID 4)
com.mongodb.spark.exceptions.MongoTypeConversionException: Cannot cast STRING into a NullType (value: BsonString{value='4492148'})
        at com.mongodb.spark.sql.MapFunctions$.com$mongodb$spark$sql$MapFunctions$$convertToDataType(MapFunctions.scala:80)
        at com.mongodb.spark.sql.MapFunctions$$anonfun$3.apply(MapFunctions.scala:38)
        at com.mongodb.spark.sql.MapFunctions$$anonfun$3.apply(MapFunctions.scala:36)
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
        at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
        at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)
        at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
        at scala.collection.mutable.ArrayOps$ofRef.map(ArrayOps.scala:108)
        at com.mongodb.spark.sql.MapFunctions$.documentToRow(MapFunctions.scala:36)
        at com.mongodb.spark.sql.MapFunctions$.castToStructType(MapFunctions.scala:109)
        at com.mongodb.spark.sql.MapFunctions$.com$mongodb$spark$sql$MapFunctions$$convertToDataType(MapFunctions.scala:75)
        at com.mongodb.spark.sql.MapFunctions$$anonfun$3.apply(MapFunctions.scala:38)
        at com.mongodb.spark.sql.MapFunctions$$anonfun$3.apply(MapFunctions.scala:36)
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
        at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
        at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)
        at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
        at scala.collection.mutable.ArrayOps$ofRef.map(ArrayOps.scala:108)
        at com.mongodb.spark.sql.MapFunctions$.documentToRow(MapFunctions.scala:36)
        at com.mongodb.spark.sql.MapFunctions$.castToStructType(MapFunctions.scala:109)
        at com.mongodb.spark.sql.MapFunctions$.com$mongodb$spark$sql$MapFunctions$$convertToDataType(MapFunctions.scala:75)
        at com.mongodb.spark.sql.MapFunctions$$anonfun$3.apply(MapFunctions.scala:38)

从谷歌,我看到的唯一解决方案是增加样本大小,但它仍然不起作用。

Cast failing From Stack Overflow Increase Sample Size

第二个表卷要高一点,我尝试过更大的样本大小,但仍然失败了。

解决这一问题的任何其他建议或想法都是有用的。

EN

回答 1

Stack Overflow用户

发布于 2021-12-08 07:56:47

我使用胶水,在加载来自documentDB(Mongo )的数据时也面临着同样的问题。我在阅读时做了以下更改以解决此错误。

代码语言:javascript
复制
df=spark.read.format("mongo").option("ssl.domain_match","false").option("replaceDocument" , "false").option("database","mydatabase").option("collection", "mycollection").option("uri","myurl").load(schema=new_schema, inferSchema=False)

请注意:我也尝试过使用“inferSchema ()”来传递.option和模式参数,但这是行不通的。当我在"load()“中传递与示例代码中相同的参数时,它起了作用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62922620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档