В зависимости от типа источника и частоты, с которой принимаются файлы, может быть также вариант использования потоковой структурированной искры. Для потоковых источников данных также поддерживаются файлы в качестве источника. Считывает файлы, записанные в каталоге, в виде потока данных. Поддерживаемые форматы файлов: текст, csv, json, orc, parquet (для получения более актуального списка и поддерживаемых параметров для каждого формата файла см. Документацию интерфейса DataStreamReader). Обратите внимание, что файлы должны быть атомарно размещены в заданном каталоге, что в большинстве файловых систем может быть достигнуто с помощью операций перемещения файлов.
streamingInputDF = (
spark
.readStream # Similar to Batch just using `readStream` instead of `read`
.schema(jsonSchema)
.json(inputPath)
)
Если вы не хотите запускать ноутбук постоянно, используйте опцию триггер один раз. При использовании триггера опция вывода выводится один раз для доступных данных, без этой опции поток вывода будет работать постоянно:
streamingOutputDF \
.coalesce(1) \
.writeStream \
.format("parquet") \
.partitionBy('ingest_date') \
.option("checkpointLocation", checkPointPath) \
.option("path", targetPath) \
.trigger(once=True) \
.start()
В этом сценарии вы можете использовать фабрику данных для запуска записной книжки Databricks без параметров.