2016-08-16 5 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

解決方法:すべてのフィールドは同じタイプでなければなりません。このタイプのテーブルではString型のフィールドとDouble型のフィールドが登録されていますが、処理できません。

関連する問題