in design-patterns/load_logfile.py [0:0]
def import_csv(tableName, fileName, attributesNameList, attributesTypeList):
dynamodb = boto3.resource(**boto_args)
dynamodb_table = dynamodb.Table(tableName)
count = 0
servererror = False
time1 = time.time()
with open(fileName, 'r', encoding="utf-8") as csvfile:
myreader = csv.reader(csvfile, delimiter=',')
for row in myreader:
count += 1
newitem = {}
for colunm_number, colunm_name in enumerate(attributesNameList):
newitem[colunm_name] = attributesTypeList[colunm_number](row[colunm_number])
# Create primary keys
newitem["PK"] = "request#{}".format(newitem['requestid'])
newitem["GSI_1_PK"] = "host#{}".format(newitem['host'])
if newitem['responsecode'] == 500:
newitem['servererror'] = '5xx'
item = dynamodb_table.put_item(Item=newitem)
if count % 100 == 0:
time2 = time.time() - time1
print("row: %s in %s" % (count, time2))
time1 = time.time()
return count