Я пытаюсь прочитать CSV-файл, который находится в моем S3 ведро. Я хотел бы сделать некоторые манипуляции, а затем, наконец, преобразовать в динамический c фрейм данных и записать его обратно в S3.
Это то, что я пробовал до сих пор:
Pure Python :
Val1=""
Val2=""
cols=[]
width=[]
with open('s3://demo-ETL/read/data.csv') as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
for row in readCSV:
print(row)
if ((Val1=="" ) & (Val2=="")):
Val1=row[0]
Val2=row[0]
cols.append(row[1])
width.append(int(row[4]))
else:
continues...
Здесь я получаю сообщение об ошибке, в котором говорится, что он вообще не может найти файл в каталоге.
Boto3:
import boto3
s3 = boto3.client('s3')
data = s3.get_object(Bucket='demo-ETL', Key='read/data.csv')
contents = data['Body'].read()
print(contents)
for row in content:
if ((Val1=="" ) & (Val2=="")):
Val1=row[0]
Val2=row[0]
cols.append(row[1])
width.append(int(row[4]))
else:
continues...
Здесь указано, что индекс вне диапазона, что странно, потому что у меня есть 4 значения через запятую в файле CSV. Когда я смотрю на результаты печати (содержимое), я вижу, что он помещает каждый символ в список, а не помещает каждое значение, разделенное запятыми, в список.
Есть ли лучший способ прочитать csv из s3?