Using Python GAE Mapper API to perform bulk datastore updates
I am trying to add a feature to my python gae app that performs the following.
First, the user uploads a CSV file to blobstore. Next, the user goes to the mapreduce console and starts a job called 'CSV to DB' (they input the blobkey which is displayed on successful upload). Here is the pseudo-code for the mapper function:
 
    def update_db(input_tuple):
      """Convert csv row into datastore entity"""
	
      line = input_tuple[1]
      for data in line.split(','):
        entity = Model(key_name=data[0], property_1=data[1],...,property_20=data[20])
        
        yield op.db.Put(entity)


The mapreduce.yaml file looks like this:

    mapreduce:
    - name: CSV to DB
    mapper:
      input_reader: mapreduce.input_readers.BlobstoreLineInputReader
      handler: csv_mapper.update_db
      params:
      - name: blob_keys
      - name: processing_rate
        default: 100000
      - name: shard_count
        default: 8

I am trying to execute this job in the dev server with a small (~1000 rows) csv file. The job starts but always gets stuck on the first shard of the job. Does mapreduce work in the sdk? Am I missing something obvious? Any tips from people who have used the mapper api to perform a similar function?
Using Python GAE Mapper API to perform bulk datastore updates
===

I am trying to add a feature to my python gae app that performs the following.
First, the user uploads a CSV file to blobstore. Next, the user goes to the mapreduce console and starts a job called 'CSV to DB' (they input the blobkey which is displayed on successful upload). Here is the pseudo-code for the mapper function:
 
    def update_db(input_tuple):
      """Convert csv row into datastore entity"""
	
      line = input_tuple[1]
      for data in line.split(','):
        entity = Model(key_name=data[0], property_1=data[1],...,property_20=data[20])
        
        yield op.db.Put(entity)


The mapreduce.yaml file looks like this:

    mapreduce:
    - name: CSV to DB
    mapper:
      input_reader: mapreduce.input_readers.BlobstoreLineInputReader
      handler: csv_mapper.update_db
      params:
      - name: blob_keys
      - name: processing_rate
        default: 100000
      - name: shard_count
        default: 8

I am trying to execute this job in the dev server with a small (~1000 rows) csv file. The job starts but always gets stuck on the first shard of the job. Does mapreduce work in the sdk? Am I missing something obvious? Any tips from people who have used the mapper api to perform a similar function?