Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从mysql到google云存储,需要类似字节的对象错误_Python_Mysql_Google Cloud Platform_Google Cloud Storage_Airflow - Fatal编程技术网

Python 从mysql到google云存储,需要类似字节的对象错误

Python 从mysql到google云存储,需要类似字节的对象错误,python,mysql,google-cloud-platform,google-cloud-storage,airflow,Python,Mysql,Google Cloud Platform,Google Cloud Storage,Airflow,我正在使用一个DAG查询MySQL数据库,提取数据并将其加载到Google云存储 我试图导出的表包括text、int、float、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

我正在使用一个DAG查询MySQL数据库,提取数据并将其加载到Google云存储

我试图导出的表包括text、int、float、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)
我遇到了如下错误,这似乎与此类似

[2018-01-04 11:12:23372]{models.py:1342}信息-于2018-01-04 00:00:00执行

[2018-01-04 11:12:23400]{base_hook.py:67}信息-使用连接到:35.189.207.140

[2018-01-04 11:12:24903]{models.py:1417}错误-需要类似字节的对象,而不是“str”

回溯(最近一次呼叫最后一次):

文件“/home/hyperli/.local/lib/python3.5/site-packages/afflow/models.py”,第1374行,运行中

结果=任务\复制.执行(上下文=上下文)

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

文件上传=自我。写入本地数据文件(光标)

文件“/home/hyperli/.local/lib/python3.5/site packages/afflow/contrib/operators/mysql\u to\u gcs.py”,第136行,在本地数据文件中

dump(行dict,tmp文件句柄)

文件“/usr/lib/python3.5/json/init.py”,第179行,在转储文件中 fp.write(块)

func_包装中的文件“/usr/lib/python3.5/tempfile.py”,第622行 返回函数(*args,**kwargs)

TypeError:需要类似字节的对象,而不是“str”

[2018-01-04 11:12:24907]{models.py:1433}信息-将任务标记为UP\u以供重试

[2018-01-04 11:12:25037]{models.py:1462}错误-需要类似字节的对象,而不是“str”


有人知道引发异常的原因吗?

您使用的是python 3吗?因为最新版本(1.90)的mysql_到_gcs与python不兼容


很明显,该运算符已更改为使mysql_与_gcs py3兼容。但是不包括

您可以发布您的MySQL架构或您正在导出的行的示例吗?还请提供airflow的版本。airflow的版本是1.8.0,我尝试导出的MySQL表由int(11)、float、text、date、varchar(20)和varchar(32)数据组成。您使用的是哪一版本的python?查看我发布的答案。是的,我正在使用python3。使用python3和python2运行.py文件时,我没有收到任何错误。然而,当我测试dag时,它使用python3。正如您在中所看到的,它们只引入了对python3的mysql\u到\u gcs的支持。但此提交未包含在任何现有版本中。因此,可以预期mysql_to_gcs将不会与Python3一起工作。总体来说,我的系统的python版本是2.7.12,而pip python是3.5。您知道如何降级pip python版本吗?您可以使用virtualenv来避免此类问题,请参阅: