使用 odo 加载 CSV -> AWS 上的 postgres
using odo to load CSV -> postgres on AWS
我正在尝试做一些相当简单的事情,但要么 odo
损坏了,要么我不明白数据形状在这个包的上下文中是如何工作的。
CSV 文件:
email,dob
tony@gmail.com,1982-07-13
blah@haha.com,1997-01-01
...
代码:
from odo import odo
import pandas as pd
df = pd.read_csv("...")
connection_str = "postgresql+psycopg2:// ... "
t = odo('path/to/data.csv', connection_str, dshape='var * {email: string, dob: datetime}')
错误:
AssertionError: datashape must be Record type, got 0 * {email: string, dob: datetime}
如果我尝试直接从 DataFrame -> Postgres 访问,也会出现同样的错误:
t = odo(df, connection_str, dshape='var * {email: string, dob: datetime}')
其他一些无法解决问题的事情:1) 从 CSV 文件中删除 header 行,2) 将 var
更改为 DataFrame 中的实际行数。
我做错了什么?
connection_str
有 table 名字吗?当我 运行 遇到类似问题但使用 sqlite 数据库时,这为我修复了它。
应该是这样的:
connection_str = "postgresql+psycopg2://your_database_name::data"
t = odo(df, connection_str, dshape='var * {email: string, dob: datetime}')
'connection_str' 中的 'data' 是您的新 table 名称。
另请参阅:
python odo sql AssertionError: datashape must be Record type, got 0 * {...}
我正在尝试做一些相当简单的事情,但要么 odo
损坏了,要么我不明白数据形状在这个包的上下文中是如何工作的。
CSV 文件:
email,dob
tony@gmail.com,1982-07-13
blah@haha.com,1997-01-01
...
代码:
from odo import odo
import pandas as pd
df = pd.read_csv("...")
connection_str = "postgresql+psycopg2:// ... "
t = odo('path/to/data.csv', connection_str, dshape='var * {email: string, dob: datetime}')
错误:
AssertionError: datashape must be Record type, got 0 * {email: string, dob: datetime}
如果我尝试直接从 DataFrame -> Postgres 访问,也会出现同样的错误:
t = odo(df, connection_str, dshape='var * {email: string, dob: datetime}')
其他一些无法解决问题的事情:1) 从 CSV 文件中删除 header 行,2) 将 var
更改为 DataFrame 中的实际行数。
我做错了什么?
connection_str
有 table 名字吗?当我 运行 遇到类似问题但使用 sqlite 数据库时,这为我修复了它。
应该是这样的:
connection_str = "postgresql+psycopg2://your_database_name::data"
t = odo(df, connection_str, dshape='var * {email: string, dob: datetime}')
'connection_str' 中的 'data' 是您的新 table 名称。
另请参阅:
python odo sql AssertionError: datashape must be Record type, got 0 * {...}