我正在尝试获取HTTP代码并存储在RDS表中,以便以后分析Pyspark作业,这将使用S3A将文件作为AVRO格式将其保存为S3。保存文件后,我知道S3将有返回状态代码,但我不确定如何将其记录在代码中。请找到代码的片段。
def s3_load(df, row):
df.write.
format("com.databricks.spark.avro").
save("s3a://Test-" + row["PARTNER"].lower() + "/" + row["TABLE_NAME"] + "/" +
datetime.datetime.today().strftime('%Y%m%d'))
在上面的代码中,我希望o作为状态代码获得返回。注意:我可以将文件保存在S3中为Avro格式。
谢谢
这是此问题中讨论的类似概念,获取包装S3 API的库或功能的状态代码:Amazon S3 Post,完成后完成的事件?
最终,如果Databricks是库处理上传的库,则df.write.save(...)
功能调用的结果响应代码将在Databricks函数调用结果的某个地方找到。
databricks支持s3
和s3a
作为保存文件的目标目的地(如此处所示),但似乎没有数据链球形在此处从基础操作中浮出响应代码(也许他们确实找不到它,我找不到它在任何文档中)。
向前迈进的一些选择:
-
假设Databricks会为该上传丢弃"某种"错误,那么简单的
<) <)。try
/except
将允许您正确捕获此问题(尽管任何非databricks级别的错误仍然会通过)。 -
在AWS上,S3存储桶上传是一个事件源,可以用作其他操作的触发器,例如调用AWS lambda,您可以使用它来调用任意云托管函数。有关此教程中此架构的样子的许多信息。
-
根据并行上传的需要,您可以使用官方AWS Python库
boto3
重写小型上传功能。讨论如何处理此处讨论的这些错误/响应代码。 -
databricks似乎也具有企业产品中某个地方的审核记录功能。