我正在運行一個映射縮減作業,它映射大約100k條記錄。經過幾千年的記錄(不同的地方,每次),在應用程序引擎日誌BadValueError以下錯誤Mapreduce作業隨機失敗,'BadValueError:名稱必須小於500'
地圖步驟失敗:名稱必須小於500
Pipeline job id: baada59c857d11e28527e1efd5a519d7
Output Blob file name: content_contributors_report_1362478582.csv
日誌轉儲
Final result for job '1581739058957C0CA88F5' is 'success' E2013-03-05
12:25:21.637 name must be under 500 bytes. Traceback (most recent call
last): File
"/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py",
line 1535, in __call__
rv = self.handle_exception(request, response, e) File "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py",
line 1529, in __call__
rv = self.router.dispatch(request, response) File "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py",
line 1278, in default_dispatcher
return route.handler_adapter(request, response) File "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py",
line 1102, in __call__
return handler.dispatch() File "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py",
line 572, in dispatch
return self.handle_exception(e, self.app.debug) File "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py",
line 570, in dispatch
return method(*args, **kwargs) File "/base/data/home/apps/s~myap/a-276.365486148015822746/mapreduce/base_handler.py",
line 68, in post
self.handle() File "/base/data/home/apps/s~myapp/a-276.365486148015822746/mapreduce/handlers.py",
line 437, in handle
spec, state, self.base_path()) File "/base/data/home/apps/s~myapp/a-276.365486148015822746/mapreduce/handlers.py",
line 517, in _finalize_job
mapreduce_spec.mapper.output_writer_class().finalize_job(mapreduce_state)
File
"/base/data/home/apps/s~myapp/a-276.365486148015822746/mapreduce/output_writers.py",
line 454, in finalize_job
files.blobstore.get_blob_key(filename))) File "/base/data/home/apps/s~myapp/a-276.365486148015822746/mapreduce/lib/files/blobstore.py",
line 112, in get_blob_key
_BLOB_FILE_INDEX_KIND, ticket, namespace='')])[0] File "/python27_runtime/python27_lib/versions/1/google/appengine/api/datastore_types.py",
line 504, in from_path
ValidateString(id_or_name, 'name') File "/python27_runtime/python27_lib/versions/1/google/appengine/api/datastore_types.py",
line 176, in ValidateString
raise exception('%s must be under %d bytes.' % (name, max_len)) BadValueError: name must be under 500 bytes.
您正在使用的映射精簡的版本? – lucemia 2013-03-05 13:46:19
看看這是否有幫助:http://stackoverflow.com/questions/11178869/overcome-appengine-500-byte-string-limit-in-python-consider-text – Amar 2013-03-05 19:15:55
謝謝@lucemia,原來我使用的是錯誤的版本,後來我不得不下載一個seprate mapreduce庫並將其添加到我的項目代碼庫中,現在我恢復到與SDK捆綁在一起,這似乎解決了問題。 – 2013-03-07 17:36:51