map_duceをstart_map経由で起動するときにパラメータを設定する際に問題が発生しましたので、done_callbackでアクセスできます。私が読んだたくさんのことは、それが可能であることを示唆していますが、どういうわけか、地球月星が正しく整列していないのです。最終的に、私が達成しようとしているのは、mapreduceジョブ用に作成した一時的なBLOBを削除することです。google mapreduceパラメータをdone_callbackに渡すには
は、ここで私はそれをキックオフ方法は次のとおりです。done_callbackで
mrID = control.start_map(
"Find friends",
"findfriendshandler.findFriendHandler",
"mapreduce.input_readers.BlobstoreLineInputReader",
{"blob_keys": blobKey},
shard_count=7,
mapreduce_parameters={'done_callback': '/fnfrdone','blobKey': blobKey})
は、コンテキストオブジェクトは使用できません。
class FindFriendsDoneHandler(webapp.RequestHandler):
def post(self):
ctx = context.get()
if ctx is not None:
params = ctx.mapreduce_spec.mapper.params
try:
blobKey = params['blobKey']
logging.info(['BLOBKEY ' + blobKey])
except KeyError:
logging.info('blobKey key not found in params')
else:
logging.info('context.get did not work') #THIS IS WHAT GETS OUTPUT
ありがとう!
EDIT:複数のMRライブラリがあるかもしれないように思えたので、私は私の様々な輸入品を含めたかった:
from mapreduce import control
from mapreduce import operation as op
from mapreduce import context
from mapreduce import model
ありがとう@Nick。この作業では、処理したいテキストストリームをBLOBに入れ、それをMRとして入力します。 MRの完了後、入力BLOBはまだそこにあり、私はそれを削除する必要があります。 MRに入力BLOBファイルを削除するよう指示する方法があれば教えてください!そして、はい、MR-IDにアクセスすることはできますが、避けようとしていたテーブルに永続化しない限り、blobKeyを使用する方法は考えていません。私が何かを逃しているかどうか教えてください。 – leontx
@leontx mapreduceレコードから関連情報を見つけることができるはずです。それらを取得する方法については、2番目のリンクを参照してください。 –
もう一度@Nickに感謝します。私はそれを完了することができ、コードを掲示した。 – leontx