簡體   English   中英

氣流MySQL到Google雲存儲,需要字節狀對象錯誤

[英]Airflow mysql to google cloud storage, byte-like object required error

我正在研究查詢MySQL數據庫,提取數據並將其加載到Google Cloud Storage的DAG。

我嘗試導出的表包括文本,整型,浮點型,varchar(20)和varchar(32)數據。

我正在使用氣流v1.8.0。

default_args = {
    'owner' : 'tia',
    'start_date' : datetime(2018, 1, 4),
    'depends_on_past' : False,
    'retries' : 1,
    'retry_delay':timedelta(minutes=5),
}

dag = DAG('mysql_to_gcs', default_args=default_args)

export_waybills = MySqlToGoogleCloudStorageOperator(
   task_id='extract_waybills',
   mysql_conn_id = 'podiotestmySQL',
   sql = 'SELECT * FROM podiodb.logistics_waybills',
   bucket='podio-reader-storage',
   filename= 'podio-data/waybills{}.json',
   schema_filename='podio-data/schema/waybills.json',
   dag=dag)

我凸輪遇到以下錯誤,這似乎類似於此Airflow mysql to gcp Dag錯誤

[2018-01-04 11:12:23,372] {models.py:1342}信息-在2018-01-04 00:00:00執行

[2018-01-04 11:12:23,400] {base_hook.py:67}信息-使用連接到:35.189.207.140

[2018-01-04 11:12:24,903] {models.py:1417}錯誤-需要類似字節的對象,而不是'str'

追溯(最近一次通話):

運行中的文件“ /home/hyperli/.local/lib/python3.5/site-packages/airflow/models.py”,行1374

結果= task_copy.execute(context = context)

執行中的文件“ /home/hyperli/.local/lib/python3.5/site-packages/airflow/contrib/operators/mysql_to_gcs.py”,第91行

files_to_upload = self._write_local_data_files(光標)

_write_local_data_files中的文件“ /home/hyperli/.local/lib/python3.5/site-packages/airflow/contrib/operators/mysql_to_gcs.py”,第136行

json.dump(row_dict,tmp_file_handle)

轉儲文件fp.write(chunk)中的文件“ /usr/lib/python3.5/json/ init .py”,行179

在func_wrapper中的文件“ /usr/lib/python3.5/tempfile.py”,第622行,返回func(* args,** kwargs)

TypeError:需要一個類似字節的對象,而不是'str'

[2018-01-04 11:12:24,907] {models.py:1433}信息-將任務標記為UP_FOR_RETRY

[2018-01-04 11:12:25,037] {models.py:1462}錯誤-需要類似字節的對象,而不是'str'

有誰知道為什么會引發異常?

您在使用python 3嗎? 因為它接縫了最新版本(1.90)的mysql_to_gcs與python不兼容,所以它接縫了。

似乎此更改該運算符以使mysql_to_gcs py3兼容。 但是最新版本(1.90)不包含此更改

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM