У меня есть ноутбук, который читает файлы CSV из SharePoint и загружает их в Snowflake. Код отлично работает в моей локальной системе. Я хочу запланировать ежедневную работу этого ноутбука в облаке. Я изучил функции Azure, создал функцию в студии vscode, а также попробовал использовать студию машинного обучения Azure. Это лучшее и экономически эффективное решение для этого. Вот код, который я хочу запланировать.
from office365.runtime.auth.authentication_context import AuthenticationContext
from office365.sharepoint.client_context import ClientContext
from office365.sharepoint.files.file import File
from office365.sharepoint.files.creation_information import FileCreationInformation
# Import necessary modules
import pandas as pd
from io import StringIO
from io import BytesIO
import io
import snowflake
import sqlalchemy
import snowflake.connector
from snowflake.sqlalchemy import URL
from sqlalchemy import create_engine,text
from sqlalchemy.types import String
from office365.runtime.auth.authentication_context import AuthenticationContext
from office365.sharepoint.client_context import ClientContext
from office365.sharepoint.files.file import File
from office365.sharepoint.files.creation_information import FileCreationInformation
# Import necessary modules
import pandas as pd
from io import StringIO
from io import BytesIO
import io
import snowflake
import sqlalchemy
import snowflake.connector
from snowflake.sqlalchemy import URL
from sqlalchemy import create_engine,text
from sqlalchemy.types import String
ctx2 = connect_to_sharepoint(username, password, site_address)
global print_folder_contents
def print_folder_contents(ctx, folder_url):
try:
folder = ctx.web.get_folder_by_server_relative_url(folder_url)
fold_names = []
sub_folders = folder.files #Replace files with folders for getting list of folders
ctx.load(sub_folders)
ctx.execute_query()
for s_folder in sub_folders:
fold_names.append(s_folder.properties["Name"])
return fold_names
except Exception as e:
print('Problem printing out library contents: ', e)
# Function to read a CSV file from SharePoint
def read_csv_from_sharepoint(ctx, file_url):
try:
file = ctx.web.get_file_by_server_relative_url(file_url)
with BytesIO() as file_stream:
file.download(file_stream)
ctx.execute_query()
file_stream.seek(0)
return pd.read_csv(file_stream, dtype=object) # Ensure all columns are read as objects (strings)
except Exception as e:
print(f"Failed to read the file at {file_url}. Error: {e}")
return None
engine = create_engine(
URL(
user,
account,
authenticator='externalbrowser',
database,
schema,
warehouse,
),
connect_args={'connect_timeout': 120 }
)
try:
connection = engine.connect()
with engine.connect() as conn:
results = conn.execute(text('select current_version()')).fetchone()
print(results[0])
df.columns = map(str.upper, df.columns)
# Convert DataFrame columns to VARCHAR
df = df.astype(str)
df.to_sql('scheduler_test'.lower(), con=connection, schema=schema, index=False, if_exists='replace', chunksize=16000)
finally:
connection.close()
engine.dispose()
Подробнее здесь: https://stackoverflow.com/questions/789 ... sing-azure
Планирование блокнотов Jupyter с помощью Azure ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как настроить VS Code для скрытия или удаления выходных данных ячеек из блокнотов Jupyter
Anonymous » » в форуме Python - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Невозможно автоматически импортировать библиотеки в файлы блокнотов Python и Jupyter.
Anonymous » » в форуме Python - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-