Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एयरफ्लो mysql to gcp डैग एरर

आपके ट्रेसबैक के अनुसार, आपका कोड यह बिंदु . जैसा कि आप देख सकते हैं, यह कोड को प्रोसेस करता है:

json.dump(row_dict, tmp_file_handle)

tmp_file_handle एक NamedTemporaryFile है आरंभिक डिफ़ॉल्ट इनपुट आर्ग के साथ, यानी यह w+b . के साथ खोली गई फ़ाइल का अनुकरण करता है मोड (और इसलिए इनपुट के रूप में केवल बाइट्स जैसे डेटा को स्वीकार करता है)।

समस्या यह है कि पायथन 2 में सभी स्ट्रिंग्स बाइट्स हैं जबकि पायथन 3 स्ट्रिंग्स टेक्स्ट हैं (डिफ़ॉल्ट रूप से utf-8 के रूप में एन्कोडेड हैं) )।

यदि आप एक पायथन 2 खोलते हैं और इस कोड को चलाते हैं:

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)

यह ठीक काम करता है।

लेकिन अगर आप एक पायथन 3 खोलते हैं और उसी कोड को चलाते हैं:

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'

हमें आपकी जैसी ही त्रुटि मिलती है।

इसका मतलब है कि एयरफ्लो अभी भी पायथन 3 के लिए पूरी तरह से समर्थित नहीं है (जैसा कि आप परीक्षण कवरेज , मॉड्यूल airflow/contrib/operators/mysql_to_gcs.py अभी तक या तो अजगर 2 या 3 में परीक्षण नहीं किया गया है)। इसकी पुष्टि करने का एक तरीका यह होगा कि आप अपने कोड को अजगर 2 का उपयोग करके चलाएं और देखें कि क्या यह काम करता है।

मेरा सुझाव है कि उनके JIRA पर कोई समस्या बनाएं। पायथन के दोनों संस्करणों के लिए पोर्टेबिलिटी का अनुरोध करना।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जावा से MySQL में एक छवि सहेजा जा रहा है

  2. var_dump को टेक्स्ट फ़ाइल में सेव करें

  3. MySQL साल और महीने का पहला दिन चुनें

  4. एसक्यूएल दो टेबल्स से आंतरिक जुड़ने और सीमा के साथ चयन

  5. कॉलम पर टिप्पणियां जोड़ने के लिए MySQL तालिका बदलें