Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kesalahan aliran udara mysql ke gcp Dag

Menurut traceback Anda, kode Anda rusak di titik ini . Seperti yang Anda lihat, ini memproses kode:

json.dump(row_dict, tmp_file_handle)

tmp_file_handle adalah NamedTemporaryFile diinisialisasi dengan argumen input default, yaitu, mensimulasikan file yang dibuka dengan w+b mode (dan karena itu hanya menerima data seperti byte sebagai input).

Masalahnya adalah bahwa di Python 2 semua string adalah byte sedangkan di Python 3 string adalah teks (dikodekan secara default sebagai utf-8 ).

Jika Anda membuka Python 2 dan menjalankan kode ini:

In [1]: from tempfile import NamedTemporaryFile
In [2]: tmp_f = NamedTemporaryFile(delete=True)
In [3]: import json
In [4]: json.dump({'1': 1}, tmp_f)

Ini berfungsi dengan baik.

Tetapi jika Anda membuka Python 3 dan menjalankan kode yang sama:

In [54]: from tempfile import NamedTemporaryFile
In [55]: tmp_f = NamedTemporaryFile(delete=True)
In [56]: import json
In [57]: json.dump({'1': 1}, tmp_f)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-57-81743b9013c4> in <module>()
----> 1 json.dump({'1': 1}, tmp_f)

/usr/local/lib/python3.6/json/__init__.py in dump(obj, fp, skipkeys, ensure_ascii, check_circular, allow_nan, cls, indent, separators, default, sort_keys, **kw)
    178     # a debuggability cost
    179     for chunk in iterable:
--> 180         fp.write(chunk)
    181 
    182 

/usr/local/lib/python3.6/tempfile.py in func_wrapper(*args, **kwargs)
    481             @_functools.wraps(func)
    482             def func_wrapper(*args, **kwargs):
--> 483                 return func(*args, **kwargs)
    484             # Avoid closing the file as long as the wrapper is alive,
    485             # see issue #18879.

TypeError: a bytes-like object is required, not 'str'

Kami mendapatkan kesalahan yang sama seperti kesalahan Anda.

Ini berarti Airflow masih belum sepenuhnya didukung untuk Python 3 (seperti yang Anda lihat di cakupan uji , modul airflow/contrib/operators/mysql_to_gcs.py belum diuji baik dalam python 2 atau 3). Salah satu cara untuk mengonfirmasi hal ini adalah dengan menjalankan kode Anda menggunakan python 2 dan melihat apakah itu berhasil.

Saya sarankan membuat masalah di JIRA mereka meminta portabilitas untuk kedua versi Python.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbandingan Antara Plugin Klon MySQL dan Xtrabackup

  2. Mysql kiri bergabung dengan kondisi di tabel kanan

  3. Bagaimana cara membaca gambar dari database MySQL menggunakan PHP?

  4. Impor Data ke Database MySQL

  5. Bagaimana cara memulihkan dari perintah database drop menggunakan log biner mysql?