Как импортировать ежедневные файлы и запускать их в блоках данных? - PullRequest
1 голос
/ 24 февраля 2020

У меня ежедневно создаются файлы в моем Azure озере данных с именем "0_2020_01_21_20_02_44.avro", единственное, что меняется, это дата и время, я хотел бы прочитать файлы, используя переменную для даты и подстановочные знаки для часы, минуты и секунды, я пытался с приведенным ниже кодом, но он вызывает ошибку.

val pfdtm = ZonedDateTime.now(ZoneOffset.UTC).minusDays(2)   
val fileDate =DateTimeFormatter.ofPattern("yyyy_MM_dd").format(pfdtm)

pfdtm: java.time.ZonedDateTime = 2020-02-21T19:48:57.763Z
fileDate: String = 2020_02_21 



 val df=spark.read.format("com.databricks.spark.avro").
load("adl://powerb.azuredatalakestore.net/SD/eventhubspace/eventhub/0_${fileDate}_*_*_*.avro")

Это вызывает ошибку, путь не существует. Я использую spark 2.4.3, любая помощь будет оценена.

1 Ответ

2 голосов
/ 24 февраля 2020

Я думаю, что вам не хватает интерполяции строк для ${fileDate} в .load, из-за которой значение переменной не передается.

Чтобы исправить, добавьте .load(s"") вместо .load("")

val df=spark.read.format("com.databricks.spark.avro").
load(s"adl://powerb.azuredatalakestore.net/SD/eventhubspace/eventhub/0_${fileDate}_*_*_*.avro")
...