У меня есть большие наборы данных в s3. В своей работе по склеиванию Python я буду извлекать данные из этих файлов в форме фрейма данных pandas, применять необходимые преобразования к фрейму данных, а затем загружать его в базу данных Microsoft SQL с помощью библиотеки PYMSSQL. Окончательный кадр данных содержит в среднем 100–200 тыс. строк и 180 столбцов данных. В настоящее время я использую PYMSSQL для подключения к базе данных. Проблема в том, что выполнение многих классов курсоров требует слишком много времени для загрузки данных. Примерно 20 минут для 100 тысяч строк. Я проверил логи, и загрузка всегда была медленной. скриншот прилагается. Как их загрузить быстрее? Я прилагаю свой код здесь:
file=s3.get_object(Bucket=S3_BUCKET_NAME,Key=each_file)
for chunk in pd.read_csv(file['Body'],sep=",",header=None,low_memory=False,chunksize=100000):
all_data.append(chunk)
data_frame = pd.concat(all_data, axis= 0)
all_data.clear()
cols = data_frame.select_dtypes(object).columns
data_frame[cols] = data_frame[cols].apply(lambda x: x.str.strip())
data_frame.replace(to_replace ='',value =np.nan,inplace=True)
data_frame.fillna(value=np.nan, inplace=True)
data_frame.insert(0,'New-column', 1111)
sql_data_array =data_frame.replace({np.nan:None}).to_numpy()
sql_data_tuple=tuple(map(tuple, sql_data_array))
try:
sql="insert into [db].[schema].[table](column_names)values(%d,%s,%s,%s,%s,%s...)"
db_cursor.executemany(sql,sql_data_tuple)
print("loading completed on {}".format(datetime.datetime.now()))
except Exception as e:
print(e)
Подробнее здесь: https://stackoverflow.com/questions/727 ... -shell-job
Как выполнить массовую вставку данных в базу данных MSSQL в задании оболочки Python AWS Glue? ⇐ Python
Программы на Python
1733215024
Anonymous
У меня есть большие наборы данных в s3. В своей работе по склеиванию Python я буду извлекать данные из этих файлов в форме фрейма данных pandas, применять необходимые преобразования к фрейму данных, а затем загружать его в базу данных Microsoft SQL с помощью библиотеки PYMSSQL. Окончательный кадр данных содержит в среднем 100–200 тыс. строк и 180 столбцов данных. В настоящее время я использую PYMSSQL для подключения к базе данных. Проблема в том, что выполнение многих классов курсоров требует слишком много времени для загрузки данных. Примерно 20 минут для 100 тысяч строк. Я проверил логи, и загрузка всегда была медленной. скриншот прилагается. Как их загрузить быстрее? Я прилагаю свой код здесь:
file=s3.get_object(Bucket=S3_BUCKET_NAME,Key=each_file)
for chunk in pd.read_csv(file['Body'],sep=",",header=None,low_memory=False,chunksize=100000):
all_data.append(chunk)
data_frame = pd.concat(all_data, axis= 0)
all_data.clear()
cols = data_frame.select_dtypes(object).columns
data_frame[cols] = data_frame[cols].apply(lambda x: x.str.strip())
data_frame.replace(to_replace ='',value =np.nan,inplace=True)
data_frame.fillna(value=np.nan, inplace=True)
data_frame.insert(0,'New-column', 1111)
sql_data_array =data_frame.replace({np.nan:None}).to_numpy()
sql_data_tuple=tuple(map(tuple, sql_data_array))
try:
sql="insert into [db].[schema].[table](column_names)values(%d,%s,%s,%s,%s,%s...)"
db_cursor.executemany(sql,sql_data_tuple)
print("loading completed on {}".format(datetime.datetime.now()))
except Exception as e:
print(e)
Подробнее здесь: [url]https://stackoverflow.com/questions/72784241/how-to-bulk-insert-data-into-mssql-database-in-a-aws-glue-python-shell-job[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия