python odo sql AssertionError:datashape必须是记录类型,得到0 * {...}

问题描述:

我想使用odo将CSV导入到MySQL,但我得到一个datashape错误。python odo sql AssertionError:datashape必须是记录类型,得到0 * {...}

我的理解是,datashape采用以下格式:

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) 

我使用康达运行Ubuntu 16.04和Python 3.6.1。

感谢您的任何意见。

+0

你是否能解决这个问题? – MLguy

+1

我最终没有使用odo,因为我无法在我需要的时间范围内找到修复。 – jeff

+0

在这里查看答案:https://github.com/blaze/odo/issues/580 –

尝试更换

odo('test.csv', mysql_database_uri) 

odo(pandas.read_csv('test.csv') , mysql_database_uri) 
+0

感谢您的回复。我最终没有在我的代码中使用odo,所以我无法测试这是否纠正了我遇到的问题。 – jeff

我有这个错误,指定表所需

# error 
odo('data.csv', 'postgresql://usr:[email protected]/db') 

# works 
odo('data.csv', 'postgresql://usr:[email protected]/db::table')