2017-05-16 8 views
1

저는 MongoDB와 함께 PySpark를 사용하고 있으며 날짜 필터가있는 파이프 라인을 사용하여 데이터베이스를 쿼리하고 싶습니다.PySpark MongoDB 쿼리 날짜

db.collection.aggregate([{$match:{"creation":{$lte:new Date("Jan 1, 2016")}}},{$sort:{"creation":1}}]) 

하지만 파이썬에서 같은 일을하는 방법을 알고하지 않습니다 는 몽고에서 내 쿼리는 것 같습니다. 예를 들어 나는 시도 :

pipeline = [{'$match': {'creation': {'$lte': datetime.datetime(2016, 1, 1, 0, 0)}}}, {'$sort': {'creation': 1}}] 
df = context.read.format("com.mongodb.spark.sql").options(pipeline=pipeline).load() 

와 나는 오류가 발생했습니다 : org.bson.json.JsonParseException을 : JSON 리더가 값을 기대했지만 ' 날짜 '을 발견했다.

당신은 날짜를 지정할 수 MongoDB extended JSON을 활용할 수

답변

0

를 (I는 SQL 쿼리에 파이프 라인이 아니라 모든 것을 할). 예 :

pipeline = [{'$match':{'creation':{'$lte': {'$date': "2016-01-01T00:00:00Z" }}}}] 
df_pipeline = sqlContext.read.format("com.mongodb.spark.sql.DefaultSource") 
          .option("pipeline", pipeline).load() 
df_pipeline.first()