我需要在本地计算机上将 .parquet 文件读入 Python 中的 Pandas DataFrame,而无需下载文件。parquet 文件存储在具有分层目录结构的 Azure blob 上。我正在做类似以下的事情,但我不知道如何继续:
from azure.storage.blob import BlobServiceClient
blob_service_client = BlobServiceClient.from_connection_string(connection_string)
blob_client = blob_service_client.get_blob_client(container="abc", blob="/xyz/pqr/folder_with_parquet_files")
Run Code Online (Sandbox Code Playgroud)
出于隐私考虑,我在这里使用了虚拟名称。假设目录“folder_with_parquet_files”包含“n”个。parquet 文件,如何将它们读入单个 Pandas DataFrame 中?
我有一个 AWS 工作负载,它将 csv 文件存储在 s3 的分区中,然后使用 Athena 通过 SQL 查询来查询数据,将结果写回 s3。
我正在 Azure 中寻找等效的行为,我可以将 csv 文件存储在存储中并查询它们并将结果写回该存储。
我正在使用 Azure Databricks 使用 ADLS Gen2 在 Azure Blob 存储中创建增量表,但在最后一行收到错误“初始化配置失败检测到 fs.azure.account.key 的配置值无效”
%scala
spark.conf.set(
"fs.azure.account.oauth2.client.secret",
"<storage-account-access-key>")
friends = spark.read.csv('myfile/fakefriends-header.csv',
inferSchema = True, header = True)
friends.write.format("delta").mode('overwrite')\
.save("abfss://tempfile@tempaccount.dfs.core.windows.net/myfile/friends_new")
Run Code Online (Sandbox Code Playgroud)
请帮助我如何避免这个错误
我在 Visual Studio 中为 Azure 函数 HTTP 触发器配置 blob 输出绑定时收到此错误。我尝试在文件中分配值host.json,但仍然出现此错误。
Microsoft.Azure.WebJobs.Script.WebHost:由于缺少 Azure 存储连接字符串和 SAS 连接 URI,Blob 存储的秘密初始化失败。对于 Blob 存储,请至少提供其中一项。如果打算使用文件作为机密,请添加应用程序设置键“AzureWebJobsSecretStorageType”和值“Files”。
本地.settings.json
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=.......",
"APPINSIGHTS_INSTRUMENTATIONKEY": "f...........",
"FUNCTIONS_EXTENSION_VERSION": "~2",
"WEBSITE_NODE_DEFAULT_VERSION": "8.11.1",
"WEBSITE_LOAD_CERTIFICATES": "*",
"WEBSITE_RUN_FROM_PACKAGE": "1"
},
"version": "2.0"
}
Run Code Online (Sandbox Code Playgroud)
谁能帮我在 Visual Studio 中为 azure 函数配置 blob 输出绑定?
当应用程序jar存储在Azure Blob存储容器中时,我尝试为kubernetes运行Spark时出现以下问题:
2018-10-18 08:48:54 INFO DAGScheduler:54 - Job 0 failed: reduce at SparkPi.scala:38, took 1.743177 s
Exception in thread "main" org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 4 times, most recent failure: Lost task 0.3 in stage 0.0 (TID 6, 10.244.1.11, executor 2): org.apache.hadoop.fs.azure.AzureException: org.apache.hadoop.fs.azure.AzureException: No credentials found for account datasets83d858296fd0c49b.blob.core.windows.net in the configuration, and its container datasets is not accessible using anonymous credentials. Please check if the container exists …Run Code Online (Sandbox Code Playgroud) 我正在尝试将Azure Blob存储中存在的以下Excel文件导入SQL Server
EXCEL文件
询问
SELECT *
FROM OPENROWSET(
BULK 'container/testfile.xlsx',
DATA_SOURCE = 'ExternalSrcImport',
FORMATFILE='container/test.fmt', FORMATFILE_DATA_SOURCE = 'ExternalSrcImport',
codepage = 1252,
FIRSTROW = 1
) as data
Run Code Online (Sandbox Code Playgroud)
格式化文件
10.0
4
1 SQLCHAR 0 7 "\t" 1 DepartmentID ""
2 SQLCHAR 0 100 "\t" 2 Name SQL_Latin1_General_CP1_CI_AS
3 SQLCHAR 0 100 "\t" 3 GroupName SQL_Latin1_General_CP1_CI_AS
4 SQLCHAR 0 24 "\r\n" 4 ModifiedDate ""
Run Code Online (Sandbox Code Playgroud)
格式文件说明
当我执行查询时,出现以下错误
消息4863,级别16,状态1,行210的行1,列1(部门ID)的大负荷数据转换错误(截断)。
看起来格式文件中的字段终止符不起作用,导入文件有什么想法吗?
我有一些单元测试,我想在其中模拟 AzureBlobItem类 (Azure.Storage.Blobs.Models)。
这是我正在使用的测试类。我希望Valuesgetter 返回一个带有模拟 BlobItem 的列表。那是有效的。
public class TestPage : Page<BlobItem>
{
public override IReadOnlyList<BlobItem> Values
{
get
{
return new List<BlobItem>() { new Mock<BlobItem>().Object };
}
}
public override string ContinuationToken => throw new NotImplementedException();
public override Response GetRawResponse()
{
throw new NotImplementedException();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,Name我的模拟 BlobItem 上的属性始终为 null。
我可以尝试设置它,以便Name返回一个模拟值,如下所示:
var mock = new Mock<BlobItem>();
mock.SetupGet(x => x.Name).Returns("mock");
Run Code Online (Sandbox Code Playgroud)
但后来我得到一个错误:
Non-overridable members may not be used in setup/verification expressions.
Run Code Online (Sandbox Code Playgroud)
我明白为什么会发生这个错误。但我不知道解决方案是什么。
我希望模拟的 …
我正在尝试运行一个部署存储容器的 terraform 部署。初始部署有效(由于尚未到位 IP 过滤),但随后失败。运行 terraform plan 时,我得到以下信息:
Error: retrieving Container "xxxx" (Account "xxxx" / Resource Group "xxx"): containers.Client#GetProperties: Failure responding to request: StatusCode=403 -- Original Error: autorest/azure: Service returned an error. Status=403 Code="AuthorizationFailure" Message="This request is not authorized to perform this operation.\nRequestId:62a85c92-901e-0021-12de-816608000000\nTime:2022-06-17T00:11:56.2063816Z"
Run Code Online (Sandbox Code Playgroud)
根据一些研究和调试,当存储容器没有将托管管道代理的 IP 列入白名单时,就会发生这种情况。
我修改了管道,以便检索代理的 IP 并将其添加为防火墙规则。然后,我添加了不同时间的睡眠(最多 5 分钟),尝试为规则生效留出时间,但它从未起作用。
这是我的管道的片段:
- task: AzureCLI@2
inputs:
azureSubscription: '$(azureSubscription)'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
agentIP=$(curl -s https://api.ipify.org/)
az storage account network-rule add -g xxx --account-name xxx --ip-address $agentIP
sleep 300 …Run Code Online (Sandbox Code Playgroud) azure terraform azure-blob-storage azure-devops azure-pipelines
Azure 存储资源管理器中的 Blob 文件是分页的,每页 100 个文件。有没有一种方法可以按名称搜索文件,这样我就不必翻阅页面来查找它。
azure ×7
c# ×2
amazon-s3 ×1
apache-spark ×1
azure-devops ×1
azureportal ×1
kubernetes ×1
moq ×1
openrowset ×1
parquet ×1
sql ×1
sql-server ×1
terraform ×1
unit-testing ×1