Я пытаюсь записать содержимое ряда полей файла CSV, который я скачал с веб-сайта, в базу данных AWS.
Код указан ниже.
try:
health_url = "https://data.cdc.gov/api/views/g4ie-h725/rows.csv?accessType=DOWNLOAD"
req = requests.get(health_url)
url_content = req.content
csv_file = open('Health_Data.csv', 'wb')
csv_file.write(url_content)
cursor.execute("DROP TABLE IF EXISTS ObesityData")
cursor.execute("CREATE TABLE ObesityData (YearStart int, LocationDesc VARCHAR(255), Topic VARCHAR(255), Question VARCHAR(255), DataValueType VARCHAR(255), DataValue float)")
query = "LOAD DATA LOCAL INFILE 'csv_file' INTO TABLE ObesityData \
FIELDS TERMINATED BY ',' \
LINES TERMINATED BY '\r\n' \
(YearStart, LocationDesc, Topic, Question, DataValueType, DataValue)"
cursor.execute(query)
connection.commit()
Я получаю следующую ошибку: Ошибка записи в AWS: (1148, «Использованная команда недопустима в этой MySQL версии»)
I Я могу создать таблицу, но не могу ее заполнить, что заставляет меня думать, что, возможно, это связано с разрешениями. Я следил за всеми онлайн-предложениями (SET GLOBAL local_infile = 1, et c), но они не сработали.
Я пытался добавить allow_local_infile в строку подключения (как показано ниже), но это также выдает ошибку
connection = pymysql.connect(rds_host, username, password, db_name, port=port, charset='utf8mb4', allow_local_infile=True))
Я не думаю, что LOAD LOCAL INFILE устарела в MySQL 8.0, так как Я прочитал документацию по нему. Я относительно новичок в этом!
Примечание для модераторов: я рассмотрел все другие предлагаемые решения этой проблемы на этом сайте, я не могу заставить что-либо здесь работать, некоторые из вопросов старше 7 лет, поэтому, вероятно, никакого вреда есть версия 2020 года этого.