我正在尝试使用odo将CSV导入到MySQL中,但遇到了数据整形错误。
我的理解是,数据形状采用以下格式:
var * {
column: type
...
}其中var表示可变数量的行数。我得到以下错误:
AssertionError: datashape must be Record type, got 0 * {
tod: ?string,
interval: ?string,
iops: float64,
mb_per_sec: float64
}我不确定0行数是从哪里来的。我尝试使用dshape()显式设置数据形状,但仍然得到相同的错误。
以下是重新创建错误的代码的精简版本:
from odo import odo
odo('test.csv', mysql_database_uri)我正在使用Conda运行Ubuntu 16.04和Python 3.6.1。
感谢您的任何意见。
发布于 2017-10-03 05:03:30
我有这个错误,需要指定表
# error
odo('data.csv', 'postgresql://usr:pwd@ip/db')
# works
odo('data.csv', 'postgresql://usr:pwd@ip/db::table')发布于 2017-07-19 01:05:24
尝试替换
odo('test.csv', mysql_database_uri) 使用
odo(pandas.read_csv('test.csv') , mysql_database_uri)发布于 2019-02-12 23:53:43
Odo似乎有问题,而且已经停产了。作为替代,您可以使用具有fast pandas to SQL functionality的d6tstack,因为它使用本机DB导入命令。它支持Postgres、MYSQL和MS SQL,
cfg_uri_mysql = 'mysql+mysqlconnector://testusr:testpwd@localhost/testdb'
d6tstack.combine_csv.CombinerCSV(glob.glob('*.csv'),
apply_after_read=apply_fun).to_mysql_combine(uri_psql, 'table')对于导入具有数据模式更改的多个CSV和/或在写入db之前使用pandas进行预处理,也特别有用,请参见examples notebook中的更多信息。
https://stackoverflow.com/questions/44598799
复制相似问题