У меня есть схема, которую нужно взорвать, но после того, как я собрал свою схему и прочитал ее, столбец (массив) становится пустым. имя столбца "TimeEntries". ниже приведена схема столбца, и мне нужно ее взорвать.
|-- TimeEntries: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- AgentId: string (nullable = true)----------
| | |-- ApprovalDetails: struct (nullable = true)
| | | |-- ActualApprovedDateTimeInfo: struct (nullable = true)
| | | | |-- DateTimeInUtc: string (nullable = true)-------------
| | | | |-- TimezoneId: string (nullable = true)
| | | |-- ApprovedRejectedByAlias: string (nullable = true)
| | | |-- AssignedApproverAlias: string (nullable = true)
| | | |-- RejectionComments: string (nullable = true)
| | | |-- RejectionReasonId: string (nullable = true)
| | | |-- RequiredApprovedDateTimeInfo: struct (nullable = true)
| | | | |-- DateTimeInUtc: string (nullable = true)
| | |-- LaborCategory: string (nullable = true)--------
| | |-- LaborDate: string (nullable = true)--------
| | |-- LaborHours: string (nullable = true)----------
| | |-- LaborId: string (nullable = true)-----
| | |-- LaborStatus: string (nullable = true)-------
| | |-- Notes: string (nullable = true)----
| | |-- PartnerLaborId: string (nullable = true)-------
| | |-- SubmittedDateTimeInfo: struct (nullable = true)
| | | |-- DateTimeInUtc: string (nullable = true)-------
| | | |-- TimezoneId: string (nullable = true)
Вот код, который я использовал для чтения JSON файла
val dl = spark.read.format("com.databricks.spark.avro").load("adl://**********.azuredatalakestore.net/SD/eventhub/eventhub/1_2020_01_*_*_*_*.avro")
val dl1=dl.select($"body".cast("string")).map(_.toString())
val dl2=spark.read.json(dl1)
val dl3=dl2.select($"Content.CaseNumber",$"content.TimeEntries",$"RawProperties.UserProperties.EventDateTime")
val windowSpec = Window.partitionBy("CaseNumber").orderBy(col("EventDateTime").desc)
val dl4=dl3.withColumn("rnk",row_number().over(windowSpec)).filter($"rnk"===1)
dl4.show
Но столбец TimeEntries приходит как ноль, но я знаю, что он имеет значения в виде массива, я новичок в кирпичах данных, любая помощь будет оценена? спасибо