【问题标题】:databricks - mounted S3 - how to get file metadata like last modified date (Python)databricks - 挂载的 S3 - 如何获取文件元数据,如上次修改日期(Python)
【发布时间】:2019-07-01 08:49:26
【问题描述】:

我已经在我的数据块中安装了一个 s3 存储桶,我可以看到文件列表,我也可以使用 python 读取文件

ACCESS_KEY = "XXXXXXXXXX"
SECRET_KEY = "XXXXXXXXXXXXXX"
ENCODED_SECRET_KEY = SECRET_KEY.replace("/", "%2F")
AWS_BUCKET_NAME = "testbucket"
MOUNT_NAME = "awsmount1"

dbutils.fs.mount("s3a://%s:%s@%s" % (ACCESS_KEY, ENCODED_SECRET_KEY, AWS_BUCKET_NAME), "/mnt/%s" % MOUNT_NAME)
display(dbutils.fs.ls("/mnt/%s/data" % MOUNT_NAME))

我想找出我正在阅读的文件的最后修改日期,但我找不到太多但 java 选项 Databricks read Azure blob last modified date 用于 azure blob,databricks 中是否有 python 本机选项来读取文件元数据。

【问题讨论】:

  • 我认为 AWS SDK 可能是最后修改日期的最佳选择。我在 CLI 或 REST API 上也找不到任何可以提供帮助的东西。

标签: python apache-spark databricks azure-databricks


【解决方案1】:

如果我理解正确,您需要使用 python 本机 sdk 在 Azure 数据块中安装文件的最后修改日期。

以下是从 Azure blob 获取元数据信息的示例代码:

from azure.storage.blob import BlockBlobService
block_blob_service = BlockBlobService(account_name='accoutName', account_key='accountKey')
container_name ='containerName'
block_blob_service.create_container(container_name)
generator = block_blob_service.list_blobs(container_name)
for blob in generator:
    lastModified= BlockBlobService.get_blob_properties(block_blob_service,container_name,blob.name).properties.last_modified
    print("\t Blob name: " + blob.name)
    print(lastModified)

您可以获取有关此here 的更多详细信息。

如果您正在寻找 S3,那么我建议您在使用 (S3) Object python 对象时使用 Boto.oto3 返回 LastModified 的日期时间对象:

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Object.last_modified

比较 LastModified 和今天的日期 (Python3):

import boto3
from datetime import datetime, timezone

today = datetime.now(timezone.utc)

s3 = boto3.client('s3', region_name='eu-west-1')

objects = s3.list_objects(Bucket='my_bucket')

for o in objects["Contents"]:
    if o["LastModified"] == today:
        print(o["Key"])

Reference

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    相关资源
    最近更新 更多