【问题标题】:Trouble Inserting DataFrame Into InfluxDB Using Python使用 Python 将 DataFrame 插入 InfluxDB 时遇到问题
【发布时间】:2017-10-04 22:38:11
【问题描述】:

我正在尝试将一个非常大的 CSV 文件插入 InfluxDB 并在 Python 中插入它:

influx_pd = influxdb.DataFrameClient(host, port, user, password, db, verify_ssl=False)

for frame in pd.read_csv(infile, chunksize=batch_count):
    frame.set_index(pd.DatetimeIndex(frame[date_pk]), inplace=True)
    frame.dropna(axis=1, how='all')
    influx_pd.write_points(frame, 'patients')

但是,在第一次调用 write_points 时,我收到了这个错误(被截断):

raise InfluxDBClientError(response.content, response.status_code)
influxdb.exceptions.InfluxDBClientError: 400: {"error":"unable to parse 'enroll_pd Pt Id=\"21.0\",Admit Date=\"2010-12-05\", ... MRSA Screening=\"Negative\" 1291507200000000000': invalid field format\nunable to parse ... (ellipses used to truncate)

我已阅读有关 InfluxDB 和 NaN 值(我的 CSV 文件确实包含)的问题,因此我尝试为 NaN 值插入占位符值,但收到相同的结果。有人可以帮我在我的代码中找到问题吗?将不胜感激。

我正在使用 InfluxDB 1.3 Docker 映像,仅供参考。

【问题讨论】:

    标签: python python-3.x influxdb influxdb-python


    【解决方案1】:

    所以我意识到我必须将协议显式指定为 json,如下所示:

    influx_pd.write_points(frame, measurement='enroll_pd', protocol='json')
    

    除了使用插补方法填充 NaN 值(JSON 不支持这些值)。我以为我认为 json 是默认的文档的文档,我想事实并非如此。

    当然,这可能只是一种解决方案。我欢迎其他可行的替代解决方案。

    【讨论】:

      猜你喜欢
      • 2020-01-17
      • 2023-03-18
      • 2012-03-20
      • 2017-01-04
      • 2018-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-28
      相关资源
      最近更新 更多