* 결국엔 하자가 많아서 php fgetcsv로 처리함.
천만 건 정도 되는 데이터를 csv로 받아서 json으로 변경 해서 카프카에 전송 해야 했다.
import csv를 썼는데, 두 줄을 한 줄로 읽음...........
다른 언어 쓸까 하다가 이미 코드 짜놓은 게 아까워서 파이썬 물고 늘어지기로 하고 pandas로 함.
import pandas
...
csv_data = pandas.read_csv(csv_file, names=cols, low_memory=False)
data = csv_data.to_dict()
cols = ["no","reception","user_id","inquiry_type1","content","write_datetime","update_datetime","write_gw_id","write_gw_name","del_flag","notice_flag"]
for i in data['no']:
row = {
'no' : data['no'][i],
'reception' : data['reception'][i],
'user_id' : data['user_id'][i],
'inquiry_type1' : data['inquiry_type1'][i],
'content' : data['content'][i],
'write_datetime' : data['write_datetime'][i],
'update_datetime' : data['update_datetime'][i],
'write_gw_id' : data['write_gw_id'][i],
'write_gw_name' : data['write_gw_name'][i],
'del_flag' : data['del_flag'][i],
'notice_flag' : data['notice_flag'][i],
}
for k in row:
if pandas.isna(row[k]) is True: # pandas에서 빈 값은 NaN으로 넣어서 빈 값으로 변경
row[k] = ''
elif row[k] == '\\N': # mysql csv 덤프시 null이 \N이라 빈 값으로 변경
row[k] = ''
반응형