【发布时间】:2015-05-07 17:16:43
【问题描述】:
我想使用 python blaze 从uk nga geonames download 读取uk.txt 文件,然后使用odo 将其插入到 Postgresql 数据库中。
代码是:
import blaze as bz
from odo import odo
dataPath = 'uk.txt'
myData = bz.Data(dataPath, sep='\t')
out = odo(myData, 'postgresql://postgres:postgres@localhost:5432/blaze_test::uk_geonames')
我收到错误ValueError: cannot safely convert passed user dtype of <i8 for object dtyped data in column 0,我认为我理解为“无法转换数据类型以插入数据库”
我应该强制dtype 等于什么吗?我该如何解决这个问题?
来自文件的示例输入是:
RC UFI UNI LAT LONG DMS_LAT DMS_LONG MGRS JOG FC DSG PC CC1 ADM1 POP ELEV CC2 NT LC SHORT_FORM GENERIC SORT_NAME_RO FULL_NAME_RO FULL_NAME_ND_RO SORT_NAME_RG FULL_NAME_RG FULL_NAME_ND_RG NOTE MODIFY_DATE DISPLAY NAME_RANK NAME_LINK TRANSL_CD NM_MODIFY_DATE
1 380952 475802 54.086111 -6.655556 540510 -63920 29UPV5334795644 NN29-06 H STM EI,UK EI,UK N Clarebane CLAREBANERIVER Clarebane River Clarebane River CLAREBANERIVER Clarebane River Clarebane River 2014-06-27 1,2,3 2
【问题讨论】:
-
我已经提交了一个 PR 来改进对简单文件标题的猜测,例如:github.com/ContinuumIO/odo/pull/192。很快就会成为大师。
-
很好,最后一个有用的问题。正在考虑 odo/blaze 的范围是什么,包括 GeoPandas 或 Fiona 库的各个方面,因为这会将 blaze 扩展到地理数据。
-
挂钩到 GeoPandas 可能不会太难。这是用于连接的 pandas 后端实现:github.com/ContinuumIO/blaze/blob/master/blaze/compute/…
标签: python postgresql pandas blaze