Как сказал @LeonYue, теперь он не поддерживается на фабрике данных Azure.Однако, по моему опыту, в качестве обходного решения вы можете создать сценарий Python, используя для этого pandas
, и запустить его как WebJob службы приложений Azure или на виртуальной машине Azure для ускорения между хранилищем Azure и другими службами Azure.
Шаги обходного решения, как показано ниже.
Возможно, все эти CSV-файлы находятся в контейнере хранилища BLOB-объектов Azure, поэтому их необходимо перечислить в контейнере через list_blob_names
и сгенерируйте их URL с токеном sas для функции панд read_csv , код как показано ниже.
from azure.storage.blob.baseblobservice import BaseBlobService
from azure.storage.blob import ContainerPermissions
from datetime import datetime, timedelta
account_name = '<your account name>'
account_key = '<your account key>'
container_name = '<your container name>'
service = BaseBlobService(account_name=account_name, account_key=account_key)
token = service.generate_container_shared_access_signature(container_name, permission=ContainerPermissions.READ, expiry=datetime.utcnow() + timedelta(hours=1),)
blob_names = service.list_blob_names(container_name)
blob_urls_with_token = (f"https://{account_name}.blob.core.windows.net/{container_name}/{blob_name}?{token}" for blob_name in blob_names)
#print(list(blob_urls_with_token))
Для непосредственного чтения csvфайл с помощью функции read_csv
для получения фрейма данных pandas.
import pandas as pd
for blob_url_with_token in blob_urls_with_token:
df = pd.read_csv(blob_url_with_token)
Вы можете следовать своему желанию управлять этим фреймом данных с помощью pandas, а затем записывать в хранилище BLOB-объектов Azure как один csvфайл с помощью Azure Storage SDK для Python.
Надеюсь, это поможет.