2016-08-16 2 views
0

Mongo-Spark 커넥터를 사용하여 설명서 (https://docs.mongodb.com/spark-connector/sparkR/)의 모든 예제를 사용할 수 있지만 하위 문서가있는 문서에서 쿼리를 테스트 할 경우 SQL에서이 쿼리를 실행할 준비가되지 않은 것입니다.sparkR-Mongo 커넥터 하위 쿼리

result <- sql(sqlContext, "SELECT DOCUMENT.SUBDOCUMENT FROM TABLE") 

ERROR :

registerTempTable(schema, "TABLE") 
:

com.mongodb.spark.exceptions.MongoTypeConversionException: Cannot cast INT32 into a ConflictType (value: BsonInt32{value=171609012}) 
     at com.mongodb.spark.sql.MapFunctions$.com$mongodb$spark$sql$MapFunctions$$convertToDataType(MapFunctions.scala:79) 
     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:108) 
     at com.mongodb.spark.sql.MapFunctions$.com$mongodb$spark$sql$MapFunctions$$convertToDataType(MapFunctions.scala:74) 

은 이전에 내가 다음과 같이 테이블을 등록

중요한 문제는 mongo-subdocument를 테이블로 등록하는 방법입니다.

누군가 해결책이 있습니까?

+0

샘플 문서를 보여 주시겠습니까? – notionquest

답변

0

해결책 : 모든 필드는 동일한 유형을 따라야합니다.이 유형의 필드는 문자열 유형으로, 다른 유형은 Double 유형으로 등록되었지만 처리 할 수 ​​없습니다.