我正在处理 Azure Synapse Spark 笔记本中大约 19,710 个包含 IIS 日志文件的目录。每个目录中有 3 个 IIS 日志文件。笔记本读取目录中的 3 个文件,并将它们从分隔的文本转换为 Parquet。没有分区。但偶尔我会无缘无故地收到以下两个错误。
{
"errorCode": "2011",
"message": "An error occurred while sending the request.",
"failureType": "UserError",
"target": "Call Convert IIS To Raw Data Parquet",
"details": []
}
当我收到上述错误时,所有数据都已成功写入 Azure Data Lake Storage Gen2 中的相应文件夹。
{
"errorCode": "6002",
"message": "(3,17): error CS0234: The type or namespace name 'Spark' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)\n(4,17): error CS0234: The type or namespace name 'Spark' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)\n(12,13): error CS0103: The name 'spark' does not exist in the current context",
"failureType": "UserError",
"target": "Call Convert IIS To Raw Data Parquet",
"details": []
}
当我收到上述错误时,没有任何数据被成功写入 Azure Data Lake Storage Gen2 中的相应文件夹。
在这两种情况下,您都可以看到笔记本确实运行了一段时间。我在 spark 笔记本上启用了 1 次重试,它是一个 pyspark 笔记本,它使用 C# %%csharp 为参数和其余逻辑执行 python。火花池很小(4 核/32GB),有 5 个节点。
笔记本中进行的唯一转换是将字符串列转换为时间戳。
var dfConverted = dfparquetTemp.WithColumn("Timestamp",Col("Timestamp").Cast("timestamp"));
当我说这是随机的时,管道当前正在运行,并且在处理 215 个目录后,有 2 个第一个失败和一个第二个失败。
任何想法或建议将不胜感激。