Как импортировать данные из csv файла в аэроспайк без использования загрузчика аэроспайк? Есть ли альтернатива загрузчику аэроспайк?

Я хочу импортировать следующие данные из csv-файла в aerospike и запустить простой запрос select для отображения данных с использованием python в качестве клиента

например

policyID,statecode,county,eq_site_limit,hu_site_limit,fl_site_limit,fr_site_limit,tiv_2011,tiv_2012,eq_site_deductible,hu_site_deductible,fl_site_deductible,fr_site_deductible,point_latitude,point_longitude,line,construction,point_granularity
119736,FL,CLAY COUNTY,498960,498960,498960,498960,498960,792148.9,0,9979.2,0,0,30.102261,-81.711777,Residential,Masonry,1
448094,FL,CLAY COUNTY,1322376.3,1322376.3,1322376.3,1322376.3,1322376.3,1438163.57,0,0,0,0,30.063936,-81.707664,Residential,Masonry,3

  query = client.query( 'test', 'csvfile' )
  query.select( 'policyID', 'statecode' )

2 ответа

Вы можете попробовать использовать модуль Python CSV вместе с клиентом Aerospike Python:

https://docs.python.org/2/library/csv.html

http://www.aerospike.com/docs/client/python/

И сделайте что-то похожее на следующее:

    import aerospike
    import sys
    import csv

    global rec
    rec = {}
    csvfile  = open('aerospike.csv', "rb")
    reader = csv.reader(csvfile)
    rownum = 0
    for row in reader:
        # Save First Row with headers
        if rownum == 0:
            header = row
        else:
            colnum = 0
            for col in row:
                # print (rownum,header[colnum],col)
                rec[header[colnum]] = col
                colnum += 1
        rownum += 1
        # print(rownum,rec)
        if rec:
             client.put(('test', 'demo', str(rownum)), rec)
        rec = {}
    csvfile.close()

Примечание. Может потребоваться проверить размер заголовков и убедиться, что они не превышают 14 символов. если нет, вы можете получить следующее:

error: (21L, 'A bin name should not exceed 14 characters limit', 'src/main/conversions.c', 500)

Насколько мне известно, нет другого встроенного инструмента, кроме загрузчика, который позволяет импортировать CSV. Вы могли бы, возможно, построить один, используя существующие клиентские инструменты.

Другие вопросы по тегам