perfect! thank you! On Fri, Feb 7, 2020 at 10:54 AM Valentyn Tymofieiev <valen...@google.com> wrote:
> Thanks for your feedback. We expect that this issue will be fixed in > cloudpickle==1.3.0. Per [1], this release may be available next week. > > After that you can install the fixed version of cloudpickle until the AI > notebook image picks up the new version. > > [1] https://github.com/cloudpipe/cloudpickle/pull/337 > > On Tue, Feb 4, 2020 at 12:44 PM Alan Krumholz <alan.krumh...@betterup.co> > wrote: > >> Seems like the image we use in KFP to orchestrate the job has >> cloudpickle==0.8.1 >> and that one doesn't seem to cause issues. >> I think I'm unblock for now but I'm sure I won't be the last one to try >> to do this using GCP managed notebooks :( >> >> Thanks for all the help! >> >> >> On Tue, Feb 4, 2020 at 12:24 PM Alan Krumholz <alan.krumh...@betterup.co> >> wrote: >> >>> I'm using a managed notebook instance from GCP >>> It seems those already come with cloudpickle==1.2.2 as soon as you >>> provision it. apache-beam[gcp] will then install dill==0.3.1.1 I'm >>> going to try to uninstall cloudpickle before installing apache-beam and see >>> if this fixes the problem >>> >>> Thank you >>> >>> On Tue, Feb 4, 2020 at 11:54 AM Valentyn Tymofieiev <valen...@google.com> >>> wrote: >>> >>>> The fact that you have cloudpickle==1.2.2 further confirms that you >>>> may be hitting the same error as >>>> https://stackoverflow.com/questions/42960637/python-3-5-dill-pickling-unpickling-on-different-servers-keyerror-classtype >>>> . >>>> >>>> Could you try to start over with a clean virtual environment? >>>> >>>> On Tue, Feb 4, 2020 at 11:46 AM Alan Krumholz < >>>> alan.krumh...@betterup.co> wrote: >>>> >>>>> Hi Valentyn, >>>>> >>>>> Here is my pip freeze on my machine (note that the error is in >>>>> dataflow, the job runs fine in my machine) >>>>> >>>>> ansiwrap==0.8.4 >>>>> apache-beam==2.19.0 >>>>> arrow==0.15.5 >>>>> asn1crypto==1.3.0 >>>>> astroid==2.3.3 >>>>> astropy==3.2.3 >>>>> attrs==19.3.0 >>>>> avro-python3==1.9.1 >>>>> azure-common==1.1.24 >>>>> azure-storage-blob==2.1.0 >>>>> azure-storage-common==2.1.0 >>>>> backcall==0.1.0 >>>>> bcolz==1.2.1 >>>>> binaryornot==0.4.4 >>>>> bleach==3.1.0 >>>>> boto3==1.11.9 >>>>> botocore==1.14.9 >>>>> cachetools==3.1.1 >>>>> certifi==2019.11.28 >>>>> cffi==1.13.2 >>>>> chardet==3.0.4 >>>>> Click==7.0 >>>>> cloudpickle==1.2.2 >>>>> colorama==0.4.3 >>>>> configparser==4.0.2 >>>>> confuse==1.0.0 >>>>> cookiecutter==1.7.0 >>>>> crcmod==1.7 >>>>> cryptography==2.8 >>>>> cycler==0.10.0 >>>>> daal==2019.0 >>>>> datalab==1.1.5 >>>>> decorator==4.4.1 >>>>> defusedxml==0.6.0 >>>>> dill==0.3.1.1 >>>>> distro==1.0.1 >>>>> docker==4.1.0 >>>>> docopt==0.6.2 >>>>> docutils==0.15.2 >>>>> entrypoints==0.3 >>>>> enum34==1.1.6 >>>>> fairing==0.5.3 >>>>> fastavro==0.21.24 >>>>> fasteners==0.15 >>>>> fsspec==0.6.2 >>>>> future==0.18.2 >>>>> gcsfs==0.6.0 >>>>> gitdb2==2.0.6 >>>>> GitPython==3.0.5 >>>>> google-api-core==1.16.0 >>>>> google-api-python-client==1.7.11 >>>>> google-apitools==0.5.28 >>>>> google-auth==1.11.0 >>>>> google-auth-httplib2==0.0.3 >>>>> google-auth-oauthlib==0.4.1 >>>>> google-cloud-bigquery==1.17.1 >>>>> google-cloud-bigtable==1.0.0 >>>>> google-cloud-core==1.2.0 >>>>> google-cloud-dataproc==0.6.1 >>>>> google-cloud-datastore==1.7.4 >>>>> google-cloud-language==1.3.0 >>>>> google-cloud-logging==1.14.0 >>>>> google-cloud-monitoring==0.31.1 >>>>> google-cloud-pubsub==1.0.2 >>>>> google-cloud-secret-manager==0.1.1 >>>>> google-cloud-spanner==1.13.0 >>>>> google-cloud-storage==1.25.0 >>>>> google-cloud-translate==2.0.0 >>>>> google-compute-engine==20191210.0 >>>>> google-resumable-media==0.4.1 >>>>> googleapis-common-protos==1.51.0 >>>>> grpc-google-iam-v1==0.12.3 >>>>> grpcio==1.26.0 >>>>> h5py==2.10.0 >>>>> hdfs==2.5.8 >>>>> html5lib==1.0.1 >>>>> htmlmin==0.1.12 >>>>> httplib2==0.12.0 >>>>> icc-rt==2020.0.133 >>>>> idna==2.8 >>>>> ijson==2.6.1 >>>>> imageio==2.6.1 >>>>> importlib-metadata==1.4.0 >>>>> intel-numpy==1.15.1 >>>>> intel-openmp==2020.0.133 >>>>> intel-scikit-learn==0.19.2 >>>>> intel-scipy==1.1.0 >>>>> ipykernel==5.1.4 >>>>> ipython==7.9.0 >>>>> ipython-genutils==0.2.0 >>>>> ipython-sql==0.3.9 >>>>> ipywidgets==7.5.1 >>>>> isort==4.3.21 >>>>> jedi==0.16.0 >>>>> Jinja2==2.11.0 >>>>> jinja2-time==0.2.0 >>>>> jmespath==0.9.4 >>>>> joblib==0.14.1 >>>>> json5==0.8.5 >>>>> jsonschema==3.2.0 >>>>> jupyter==1.0.0 >>>>> jupyter-aihub-deploy-extension==0.1 >>>>> jupyter-client==5.3.4 >>>>> jupyter-console==6.1.0 >>>>> jupyter-contrib-core==0.3.3 >>>>> jupyter-contrib-nbextensions==0.5.1 >>>>> jupyter-core==4.6.1 >>>>> jupyter-highlight-selected-word==0.2.0 >>>>> jupyter-http-over-ws==0.0.7 >>>>> jupyter-latex-envs==1.4.6 >>>>> jupyter-nbextensions-configurator==0.4.1 >>>>> jupyterlab==1.2.6 >>>>> jupyterlab-git==0.9.0 >>>>> jupyterlab-server==1.0.6 >>>>> keyring==10.1 >>>>> keyrings.alt==1.3 >>>>> kiwisolver==1.1.0 >>>>> kubernetes==10.0.1 >>>>> lazy-object-proxy==1.4.3 >>>>> llvmlite==0.31.0 >>>>> lxml==4.4.2 >>>>> Markdown==3.1.1 >>>>> MarkupSafe==1.1.1 >>>>> matplotlib==3.0.3 >>>>> mccabe==0.6.1 >>>>> missingno==0.4.2 >>>>> mistune==0.8.4 >>>>> mkl==2019.0 >>>>> mkl-fft==1.0.6 >>>>> mkl-random==1.0.1.1 >>>>> mock==2.0.0 >>>>> monotonic==1.5 >>>>> more-itertools==8.1.0 >>>>> nbconvert==5.6.1 >>>>> nbdime==1.1.0 >>>>> nbformat==5.0.4 >>>>> networkx==2.4 >>>>> nltk==3.4.5 >>>>> notebook==6.0.3 >>>>> numba==0.47.0 >>>>> numpy==1.15.1 >>>>> oauth2client==3.0.0 >>>>> oauthlib==3.1.0 >>>>> opencv-python==4.1.2.30 >>>>> oscrypto==1.2.0 >>>>> packaging==20.1 >>>>> pandas==0.25.3 >>>>> pandas-profiling==1.4.0 >>>>> pandocfilters==1.4.2 >>>>> papermill==1.2.1 >>>>> parso==0.6.0 >>>>> pathlib2==2.3.5 >>>>> pbr==5.4.4 >>>>> pexpect==4.8.0 >>>>> phik==0.9.8 >>>>> pickleshare==0.7.5 >>>>> Pillow-SIMD==6.2.2.post1 >>>>> pipdeptree==0.13.2 >>>>> plotly==4.5.0 >>>>> pluggy==0.13.1 >>>>> poyo==0.5.0 >>>>> prettytable==0.7.2 >>>>> prometheus-client==0.7.1 >>>>> prompt-toolkit==2.0.10 >>>>> protobuf==3.11.2 >>>>> psutil==5.6.7 >>>>> ptyprocess==0.6.0 >>>>> py==1.8.1 >>>>> pyarrow==0.15.1 >>>>> pyasn1==0.4.8 >>>>> pyasn1-modules==0.2.8 >>>>> pycparser==2.19 >>>>> pycrypto==2.6.1 >>>>> pycryptodomex==3.9.6 >>>>> pycurl==7.43.0 >>>>> pydaal==2019.0.0.20180713 >>>>> pydot==1.4.1 >>>>> Pygments==2.5.2 >>>>> pygobject==3.22.0 >>>>> PyJWT==1.7.1 >>>>> pylint==2.4.4 >>>>> pymongo==3.10.1 >>>>> pyOpenSSL==19.1.0 >>>>> pyparsing==2.4.6 >>>>> pyrsistent==0.15.7 >>>>> pytest==5.3.4 >>>>> pytest-pylint==0.14.1 >>>>> python-apt==1.4.1 >>>>> python-dateutil==2.8.1 >>>>> pytz==2019.3 >>>>> PyWavelets==1.1.1 >>>>> pyxdg==0.25 >>>>> PyYAML==5.3 >>>>> pyzmq==18.1.1 >>>>> qtconsole==4.6.0 >>>>> requests==2.22.0 >>>>> requests-oauthlib==1.3.0 >>>>> retrying==1.3.3 >>>>> rsa==4.0 >>>>> s3transfer==0.3.2 >>>>> scikit-image==0.15.0 >>>>> scikit-learn==0.19.2 >>>>> scipy==1.1.0 >>>>> seaborn==0.9.1 >>>>> SecretStorage==2.3.1 >>>>> Send2Trash==1.5.0 >>>>> simplegeneric==0.8.1 >>>>> six==1.14.0 >>>>> smmap2==2.0.5 >>>>> snowflake-connector-python==2.2.0 >>>>> SQLAlchemy==1.3.13 >>>>> sqlparse==0.3.0 >>>>> tbb==2019.0 >>>>> tbb4py==2019.0 >>>>> tenacity==6.0.0 >>>>> terminado==0.8.3 >>>>> testpath==0.4.4 >>>>> textwrap3==0.9.2 >>>>> tornado==5.1.1 >>>>> tqdm==4.42.0 >>>>> traitlets==4.3.3 >>>>> typed-ast==1.4.1 >>>>> typing==3.7.4.1 >>>>> typing-extensions==3.7.4.1 >>>>> unattended-upgrades==0.1 >>>>> uritemplate==3.0.1 >>>>> urllib3==1.24.2 >>>>> virtualenv==16.7.9 >>>>> wcwidth==0.1.8 >>>>> webencodings==0.5.1 >>>>> websocket-client==0.57.0 >>>>> Werkzeug==0.16.1 >>>>> whichcraft==0.6.1 >>>>> widgetsnbextension==3.5.1 >>>>> wrapt==1.11.2 >>>>> zipp==1.1.0 >>>>> >>>>> >>>>> On Tue, Feb 4, 2020 at 11:33 AM Valentyn Tymofieiev < >>>>> valen...@google.com> wrote: >>>>> >>>>>> It don't think there is a mismatch between dill versions here, but >>>>>> https://stackoverflow.com/questions/42960637/python-3-5-dill-pickling-unpickling-on-different-servers-keyerror-classtype >>>>>> mentions >>>>>> a similar error and may be related. What is the output of pip freeze on >>>>>> your machine (or better: pip install pipdeptree; pipdeptree)? >>>>>> >>>>>> >>>>>> On Tue, Feb 4, 2020 at 11:22 AM Alan Krumholz < >>>>>> alan.krumh...@betterup.co> wrote: >>>>>> >>>>>>> Here is a test job that sometimes fails and sometimes doesn't (but >>>>>>> most times do)..... >>>>>>> There seems to be something stochastic that causes this as after >>>>>>> several tests a couple of them did succeed.... >>>>>>> >>>>>>> >>>>>>> def test_error( >>>>>>> bq_table: str) -> str: >>>>>>> >>>>>>> import apache_beam as beam >>>>>>> from apache_beam.options.pipeline_options import PipelineOptions >>>>>>> >>>>>>> class GenData(beam.DoFn): >>>>>>> def process(self, _): >>>>>>> for _ in range (20000): >>>>>>> yield {'a':1,'b':2} >>>>>>> >>>>>>> >>>>>>> def get_bigquery_schema(): >>>>>>> from apache_beam.io.gcp.internal.clients import bigquery >>>>>>> >>>>>>> table_schema = bigquery.TableSchema() >>>>>>> columns = [ >>>>>>> ["a","integer","nullable"], >>>>>>> ["b","integer","nullable"] >>>>>>> ] >>>>>>> >>>>>>> for column in columns: >>>>>>> column_schema = bigquery.TableFieldSchema() >>>>>>> column_schema.name = column[0] >>>>>>> column_schema.type = column[1] >>>>>>> column_schema.mode = column[2] >>>>>>> table_schema.fields.append(column_schema) >>>>>>> >>>>>>> return table_schema >>>>>>> >>>>>>> pipeline = beam.Pipeline(options=PipelineOptions( >>>>>>> project='my-project', >>>>>>> temp_location = 'gs://my-bucket/temp', >>>>>>> staging_location = 'gs://my-bucket/staging', >>>>>>> runner='DataflowRunner' >>>>>>> )) >>>>>>> #pipeline = beam.Pipeline() >>>>>>> >>>>>>> ( >>>>>>> pipeline >>>>>>> | 'Empty start' >> beam.Create(['']) >>>>>>> | 'Generate Data' >> beam.ParDo(GenData()) >>>>>>> #| 'print' >> beam.Map(print) >>>>>>> | 'Write to BigQuery' >> beam.io.WriteToBigQuery( >>>>>>> project=bq_table.split(':')[0], >>>>>>> dataset=bq_table.split(':')[1].split('.')[0], >>>>>>> table=bq_table.split(':')[1].split('.')[1], >>>>>>> schema=get_bigquery_schema(), >>>>>>> >>>>>>> create_disposition=beam.io.BigQueryDisposition.CREATE_IF_NEEDED, >>>>>>> >>>>>>> write_disposition=beam.io.BigQueryDisposition.WRITE_TRUNCATE) >>>>>>> ) >>>>>>> >>>>>>> result = pipeline.run() >>>>>>> result.wait_until_finish() >>>>>>> >>>>>>> return True >>>>>>> >>>>>>> test_error( >>>>>>> bq_table = 'my-project:my_dataset.my_table' >>>>>>> ) >>>>>>> >>>>>>> On Tue, Feb 4, 2020 at 10:04 AM Alan Krumholz < >>>>>>> alan.krumh...@betterup.co> wrote: >>>>>>> >>>>>>>> I tried breaking apart my pipeline. Seems the step that breaks it >>>>>>>> is: >>>>>>>> beam.io.WriteToBigQuery >>>>>>>> >>>>>>>> Let me see if I can create a self contained example that breaks to >>>>>>>> share with you >>>>>>>> >>>>>>>> Thanks! >>>>>>>> >>>>>>>> On Tue, Feb 4, 2020 at 9:53 AM Pablo Estrada <pabl...@google.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hm that's odd. No changes to the pipeline? Are you able to share >>>>>>>>> some of the code? >>>>>>>>> >>>>>>>>> +Udi Meiri <eh...@google.com> do you have any idea what could be >>>>>>>>> going on here? >>>>>>>>> >>>>>>>>> On Tue, Feb 4, 2020 at 9:25 AM Alan Krumholz < >>>>>>>>> alan.krumh...@betterup.co> wrote: >>>>>>>>> >>>>>>>>>> Hi Pablo, >>>>>>>>>> This is strange... it doesn't seem to be the last beam release as >>>>>>>>>> last night it was already using 2.19.0 I wonder if it was some >>>>>>>>>> release from >>>>>>>>>> the DataFlow team (not beam related): >>>>>>>>>> Job typeBatch >>>>>>>>>> Job status Succeeded >>>>>>>>>> SDK version >>>>>>>>>> Apache Beam Python 3.5 SDK 2.19.0 >>>>>>>>>> Region >>>>>>>>>> us-central1 >>>>>>>>>> Start timeFebruary 3, 2020 at 9:28:35 PM GMT-8 >>>>>>>>>> Elapsed time5 min 11 sec >>>>>>>>>> >>>>>>>>>> On Tue, Feb 4, 2020 at 9:15 AM Pablo Estrada <pabl...@google.com> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Alan, >>>>>>>>>>> could it be that you're picking up the new Apache Beam 2.19.0 >>>>>>>>>>> release? Could you try depending on beam 2.18.0 to see if the issue >>>>>>>>>>> surfaces when using the new release? >>>>>>>>>>> >>>>>>>>>>> If something was working and no longer works, it sounds like a >>>>>>>>>>> bug. This may have to do with how we pickle (dill / cloudpickle) - >>>>>>>>>>> see this >>>>>>>>>>> question >>>>>>>>>>> https://stackoverflow.com/questions/42960637/python-3-5-dill-pickling-unpickling-on-different-servers-keyerror-classtype >>>>>>>>>>> Best >>>>>>>>>>> -P. >>>>>>>>>>> >>>>>>>>>>> On Tue, Feb 4, 2020 at 6:22 AM Alan Krumholz < >>>>>>>>>>> alan.krumh...@betterup.co> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi, >>>>>>>>>>>> >>>>>>>>>>>> I was running a dataflow job in GCP last night and it was >>>>>>>>>>>> running fine. >>>>>>>>>>>> This morning this same exact job is failing with the following >>>>>>>>>>>> error: >>>>>>>>>>>> >>>>>>>>>>>> Error message from worker: Traceback (most recent call last): >>>>>>>>>>>> File >>>>>>>>>>>> "/usr/local/lib/python3.5/site-packages/apache_beam/internal/pickler.py", >>>>>>>>>>>> line 286, in loads return dill.loads(s) File >>>>>>>>>>>> "/usr/local/lib/python3.5/site-packages/dill/_dill.py", line 275, >>>>>>>>>>>> in loads >>>>>>>>>>>> return load(file, ignore, **kwds) File >>>>>>>>>>>> "/usr/local/lib/python3.5/site-packages/dill/_dill.py", line 270, >>>>>>>>>>>> in load >>>>>>>>>>>> return Unpickler(file, ignore=ignore, **kwds).load() File >>>>>>>>>>>> "/usr/local/lib/python3.5/site-packages/dill/_dill.py", line 472, >>>>>>>>>>>> in load >>>>>>>>>>>> obj = StockUnpickler.load(self) File >>>>>>>>>>>> "/usr/local/lib/python3.5/site-packages/dill/_dill.py", line 577, >>>>>>>>>>>> in >>>>>>>>>>>> _load_type return _reverse_typemap[name] KeyError: 'ClassType' >>>>>>>>>>>> During >>>>>>>>>>>> handling of the above exception, another exception occurred: >>>>>>>>>>>> Traceback >>>>>>>>>>>> (most recent call last): File >>>>>>>>>>>> "/usr/local/lib/python3.5/site-packages/dataflow_worker/batchworker.py", >>>>>>>>>>>> line 648, in do_work work_executor.execute() File >>>>>>>>>>>> "/usr/local/lib/python3.5/site-packages/dataflow_worker/executor.py", >>>>>>>>>>>> line >>>>>>>>>>>> 176, in execute op.start() File >>>>>>>>>>>> "apache_beam/runners/worker/operations.py", >>>>>>>>>>>> line 649, in >>>>>>>>>>>> apache_beam.runners.worker.operations.DoOperation.start File >>>>>>>>>>>> "apache_beam/runners/worker/operations.py", line 651, in >>>>>>>>>>>> apache_beam.runners.worker.operations.DoOperation.start File >>>>>>>>>>>> "apache_beam/runners/worker/operations.py", line 652, in >>>>>>>>>>>> apache_beam.runners.worker.operations.DoOperation.start File >>>>>>>>>>>> "apache_beam/runners/worker/operations.py", line 261, in >>>>>>>>>>>> apache_beam.runners.worker.operations.Operation.start File >>>>>>>>>>>> "apache_beam/runners/worker/operations.py", line 266, in >>>>>>>>>>>> apache_beam.runners.worker.operations.Operation.start File >>>>>>>>>>>> "apache_beam/runners/worker/operations.py", line 597, in >>>>>>>>>>>> apache_beam.runners.worker.operations.DoOperation.setup File >>>>>>>>>>>> "apache_beam/runners/worker/operations.py", line 602, in >>>>>>>>>>>> apache_beam.runners.worker.operations.DoOperation.setup File >>>>>>>>>>>> "/usr/local/lib/python3.5/site-packages/apache_beam/internal/pickler.py", >>>>>>>>>>>> line 290, in loads return dill.loads(s) File >>>>>>>>>>>> "/usr/local/lib/python3.5/site-packages/dill/_dill.py", line 275, >>>>>>>>>>>> in loads >>>>>>>>>>>> return load(file, ignore, **kwds) File >>>>>>>>>>>> "/usr/local/lib/python3.5/site-packages/dill/_dill.py", line 270, >>>>>>>>>>>> in load >>>>>>>>>>>> return Unpickler(file, ignore=ignore, **kwds).load() File >>>>>>>>>>>> "/usr/local/lib/python3.5/site-packages/dill/_dill.py", line 472, >>>>>>>>>>>> in load >>>>>>>>>>>> obj = StockUnpickler.load(self) File >>>>>>>>>>>> "/usr/local/lib/python3.5/site-packages/dill/_dill.py", line 577, >>>>>>>>>>>> in >>>>>>>>>>>> _load_type return _reverse_typemap[name] KeyError: 'ClassType' >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> If I use a local runner it still runs fine. >>>>>>>>>>>> Anyone else experiencing something similar today? (or know how >>>>>>>>>>>> to fix this?) >>>>>>>>>>>> >>>>>>>>>>>> Thanks! >>>>>>>>>>>> >>>>>>>>>>>